15.
September
2010
Bei VirtualBox können für die dynamische Imagedatei große Partitionen angelegt werden ohne das das Gastsystem diesen Speicherplatz wirklich auf der Festplatte belegt.
Die bis zu 16 Gigabyte groß angelegte Partition meines Mailservers belegt lediglich 884 Megabyte. Hinzu kommen 512 Megabyte für die Auslagerungspartition. Jedoch ist sie beim Installationsvorgang durch das Herunterladen der zu installierenden Pakete nach und nach auf über 1 Gigabyte angewachsen.
Nach dem Entfernen dieser Pakete war die Installation wieder auf die bereits erwähnten 884 Megabyte geschrumpft, jedoch blieb die .vdi-Datei bei einer Größe von 1,48 Gigaybyte.
Für die Datensicherung wäre es natürlich schön wenn die unnötigen Datenmengen nicht mehr mitgesichert werden müssten. Für diesen Fall bietet VirtualBox ein Kommandozeilentool, welches das »einschrumpfen« von .vdi-Dateien ermöglicht.
Entfernt werden Datenblöcke, welche zusammenhängend aus »0« bestehen. Um dies unter Linux zu erreichen müssen mehrere Schritte unternommen werden. Zunächst muss das Programm heruntergeladen werden, welches die ungenutzten Bereiche ausschließlich mit Nullen auffüllt:
sudo apt-get install zerofree
zerofree
funktioniert auf ext2- und ext3-Dateisystemen. Anschließend muss der Rechner in das Runlevel 1 gebracht werden:
sudo init 1
Die Konsole müsste anschließend wie folgt eingeblendet werden:
Give root password for maintenance
(or type Control-D to continue)
Da eine Änderung an der nicht eingehängten Partition vorgenommen werden soll, muss man sich mit dem Root-Passwort einloggen und anschließend die Partition als read only
erneut einbinden:
mount -n -o remount,ro -t ext2 /dev/sda1 /
Anschließend kann zerofree
ausgeführt werden:
zerofree /dev/sda1
zerofree
wird ohne eine weitere Ausgabe durchlaufen und die freien Bereiche mit Nullen überschreiben. Wenn der Vorgang abgeschlossen ist, wird der Prompt wieder eingeblendet.
Anschließend kann das Betriebssystem heruntergefahren und dadurch die virtuelle Maschine ausgeschaltet werden:
init 0
Danach wird an der Kommandozeile das Programm VBoxManage.exe
aufgerufen – falls der Host ein Windowssystem ist. Unter Linux steht das Programm als VBoxManaga
zur Verfügung.
Unter dem Windows-Host lautet der Aufruf beispielsweise:
E:\VirtualBox>VBoxManage.exe modifyvdi "Debian 5 Mailserver.vdi" compact
Eine kleine Anmerkung: Unter Windows muss sich die .vdi-Datei im entsprechend als Basisverzeichnis für »Voreingestellt für Festplatten« (bei den globalen Einstellungen) vermerkten Verzeichnis befinden. Ansonsten erhält man eine Fehlermeldung die Datei könne nicht gefunden werden.
E:\VirtualBox>VBoxManage.exe modifyvdi "Debian 5 Mailserver.vdi" compact
Oracle VM VirtualBox Command Line Management Interface Version 3.2.8
(C) 2005-2010 Oracle Corporation
All rights reserved.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
E:\VirtualBox>
Die erfolgreiche Komprimierung wird nicht weiter kommentiert. Sobald 100% erreicht sind, ist der Vorgang abgeschlossen. Wie erwartet ist meine .vdi-Datei des Mailservers um rund 240 Megabyte auf 1,24 Gigabyte »geschrumpft«.
Je nachdem wie häufig größere Dateien in der virtuellen Maschine beziehungsweise auf der Festplatte gespeichert und wieder gelöscht werden kann mit dieser Komprimierung die .vdi-Datei wieder verkleinert werden.
Insbesondere für Datensicherungen, beispielsweise auf einer DVD oder auf einem externen Medium (USB-Stick, Festplatte, etc.) bietet es sich vor der Archivierung an die .vdi-Datei zu komprimieren.
Aus Sicherheitsgründen sollte jedoch vor dem Vorgang eine Kopie der unkomprimierten Datei angelegt werden.
X_FISH