Komprimieren von VirtualBox Disk Images

Die Virtualisierungslösung “VirtualBox” unterstützt das Einrichten von dynamisch alloziierten Disk Images. Im Verlaufe der Nutzung wachsen die Disk Images, wenn weiterer Speicherplatz durch die virtuelle Maschine benötigt wird.

Leider schrumpft das Disk Image nicht automatisch wieder, wenn Dateien gelöscht werden.

Hierzu muss der Administrator manuell eingreifen. Unter Nutzung der Kommandozeile kann ein Disk Image mit dem folgenden Befehl komprimiert werden:

  VBoxManage modifyhd meinvdiimage.vdi –compact

Leider bringt das in der Regel nicht besonders viel, wenn (wie es üblicherweise passiert) die freien Speicherbereiche im Disk Image schlecht komprimierbar sind.

Daher müssen diese noch mit Nullen gefüllt werden, bevor man o.g. Befehl ausführt. Dies geschieht auf dem jeweiligen virtuellen Gast mit folgenden Befehlen – abhängig vom Betriebssystem:

Linux (als root ausführen):

  dd if=/dev/zero of=/mybigfile.tmp bs=1M; rm /mybigfile.tmp

Windows (mit dem Sysinternals Tool sdelete):

  sdelete -z

Anschließend kann das “modifyhd”-Kommando von oben nochmal auf das Image der (ausgeschalteten) virtuellen Maschine geworfen werden. Der Komprimierungsgrad sollte nun deutlich erhöht werdne.

Beide Befehle funktionieren nur, sofern keine Snapshots angelegt wurden. Falls es welche geben sollte, wird im ursprünglichen Image der vorherige Stand gesichert und in der Snapshot-Datei laden die ganzen genullten Bereiche. Daher verliert man hier eher noch mehr Speicherplatz. Die Snapshots sollten daher vorher soweit möglich entfernt werden.

Wenn man mehrere Partitionen unter Linux in eigenen Disk Images nutzt, muss auf jeder der Partitionen einmal eine entsprechende “mybigfile”-Datei erzeugt werden.