Vor kurzem ist mir aufgefallen, dass die VDI Dateien meiner VMs in Virtualbox relativ viel Platz auf dem Host System verbrauchen. Die VDIs sind dynamisch, jedoch wachsen die Dateien nur an und werden nicht automatisch verkleinert.

In einem Linux Gast muss man dazu den freien Platz mit Nullen überschreiben. Das geschieht relativ einfach mit

dd if=/dev/zero of=wipefile bs=1024x1024; rm wipefile

Man kann das auch mit Root Rechten durchführen um ggf. für Root reservierten Speicherplatz auch mit Nullen zu beschreiben.

Danach die VM ausschalten um auf dem Host System mit folgendem Befehl die VDI Datei verkleinern.

VBoxManage modifyvdi --compact /pfad/zur/datei/file.vdi

Sollte man einen Windows Gast betreiben empfiehlt sich das kleine Programm sdelete welches direkt bei Microsoft verfügbar ist. Die neuere 2.01 Version ist endlich wieder ähnlich schnell wie 1.61. Für ältere Windows Version gibt es auch eine alte Version von sdelete, jedoch nur noch im web archive.

Das Programm verwendet man auf der Befehlszeile cmd oder mit der PowerShell.

sdelete64.exe -z c:

Danach auch mit VBoxManage die VDI Datei verkleinern.

Virtualbox VDI Dateien verkleinern