Virtuelle Maschinen sind was Feines. Man kann neue Software gefahrlos testen, andere Betriebssysteme nutzen oder alte Systeme einfach konservieren. Bis vor kurzem habe ich den VMWare Server genutzt, der dann aber nicht mehr weiter entwickelt wurde. Auf der Suche nach einer Lösung bin ich auf VirtualBox gestoßen, dass mir persönlich sogar besser gefällt.
Die alten vmdk-Images von VMWare können zwar unter VirtualBox weiter verwendet werden, aber gewisse Änderungen können hier nicht durchgeführt werden. Deswegen habe ich meine Image-Dateien in vdi-Format von VirtualBox konvertiert. Der Befehl dafür lautet:
VBoxManage.exe clonehd --format vdi original.vmdk converted.vdi
Sollte dabei ein Fehler auftreten, dass eine Festplatte mit derselben UUID schon existiert, so kann man statt der orginal.vmdk auch die genannte UUID als Quelle angeben. Für das Konvertieren sollte man etwas Zeit und auch genug Speicherplatz einplanen, da das Image am Ende ja in zwei Formaten vorliegt.
Anschließend, und das war ein Grund für mich, das Image zu konvertieren, kann man dynamisch wachsende Images auch wieder schrumpfen, sofern Platz vorhanden ist. Damit das funktioniert, muss der freie Speicherplatz genullt werden, das heißt, dass als gelöscht markierte Dateien mit Nullen überschrieben werden. Für Windows gibt es dazu das Tool sdelete aus der Sysinternals Suite von Microsoft.
Das Programm ruft man in der virtuellen Maschine folgendermaßen auf:
sdelete.exe -z c:\
In neueren Windows-Versionen muss man das Programm (bzw. die Kommandozeile) mit Administratorrechten ausführen. Zu beachten ist auch, dass früher der Parameter -c
verwendet wurde. Für virtuelle Maschinen ist seit neuestem jedoch der Parameter -z
vorgesehen.
Nach dem Stoppen der virtuellen Maschine kann man mit dem Verkleinern des Images beginnen. Der Aufruf lautet:
VBoxManage.exe modifyhd converted.vdi --compact
Der Vorgang kann einige Zeit in Anspruch nehmen. Danach jedoch sollte sich das Image, je nach Füllstand wieder verkleinert haben
Nette Anleitung, aber es wäre nicht schlecht, wenn es auch „Futter“ für Linux (Ubuntu) hier mit angegeben werden würde. sdelete.exe ist für Windows, aber was ist für Linux geeignet?
Stimmt, der Artikel ist bisher recht einseitig auf Windows ausgelegt. Bei Linux-Gastsystemen gibt es da mehrere Möglichkeiten, eventuell baue ich den Artikel demnächst ein wenig aus. In der Zwischenzeit gebe ich mal einen Tipp für Ubuntu: Dort gibt es das Programm zerofree, dass genau dafür ausgelegt ist.