Sonntag, 6. Dezember 2009

VirtualBox / Virtual PC - Clients verkleinern

In den bekannten Virtualisierungslösungen für Home-User lassen sich Festplatten mit vordefiniertem Limit erstellen. Bis zu diesem Limit wachsen die Festplatten Dateien
(VirtualBox = .vdi | Virtual PC = .vhd) sukzessive mit den darin gespeicherten Daten.

Jedoch wird die Datei nicht mehr verkleinert, sobald der virtuelle Inhalt gelöscht wird.
Ähnlich dem Verhalten unter Windows, dass Dateien nicht sofort endgültig gelöscht werden, sondern nur der Index "vergessen" wird, werden auch darin die Daten weitergespeichert.

Will man also die Virtuelle Festplatte verkleinern (komprimieren bzw. compact), müssen zuerst folgende Schritte unternommen werden. Ich beginne mit dem ersten zwingenden Punkt (2)

Ausgangssituation: Im virtuellen PC sind weniger Nutzdaten gespeichert als die Festplatten-Datei am Host Größe hat. Dies wird zb. durch Löschaktionen / Bereinigung am virtuellen PC erreicht.


1. (optional) Festplatte defragmentieren (also im virtuellen PC, nicht am Host)
2. Dateien mit Nullen überschreiben.

Der Einfachheit halber und weil ich nur für Windows Betriebssystem poste, gebe ich nur die Methode über das Tool "SDelete" von Sysinternals (deren Tools einfach hervorragend sind) an

Im virtuellen PC das Programm SDelete.exe einfach mit folgendem Paramter (exemplarisch) aufrufen:

sdelete -c c:

Damit überschreibt das Programm den freien Speicher mit Nullen (== endgültige Löschung durch Überschreiben) (Parameter "-c" ist für solche Fälle und besonders eben für Virtualisierung) auf dem Laufwerk C:

Unter VirtualPC kann man dafür auch die Additions verwenden (Precompactor)

3. Festplattendatei verkleinern

Dies geschieht am Host. (Virtuellen Computer natürlich vorher ausschalten ;- ) )

VirtualBox / .VDI Dateien

Mit dem Tool vboxmanage:

VBoxManage modifyvdi C:\winxp.vdi compact

wobei nur "winxp.vdi" durch den vollen Pfad der virtuellen Festplatte angepasst werden muss.

Virtual PC / .VHD Dateien

Hier gibt es unter Windows 7 als Host die Möglichkeit, es mit dem Tool diskpart zu erledigen:

In der Kommandozeile eingeben:

diskpart
select vdisk file=c:\test.vhd
compact vdisk

(auch hier durch den vollen Pfad der virtuellen Festplatte ersetzen)

Ausserdem kann man es über die GUI von Virtual PC erledigen.