Damit die Provisionierung unserer Schulungsnotebooks über Foreman zukünftig noch schneller wird habe ich mich vor Kurzem daran gemacht die Images für VirtualBox zu optimieren. Voraussetzung dafür war natürlich das die virtuellen Maschinen eine dynamische Speicherplatzbelegung benutzen und die Betriebssysteminstallationen so schlank wie möglich gehalten werden.
Sind die Grundvoraussetzungen erfüllt muss man (mal wieder) zwischen zwei Betriebssystemwelten unterscheiden. Bei Windows-Systemen ist vor dem nächsten Schritt nämlich noch etwas Vorarbeit zu leisten. Und zwar muss hier zuerst eine Defragmentierung durchgeführt werden. Dies lässt sich aber beispielsweise bereits mit Standardtools bewerkstelligen, die Windows von Haus aus mitbringt.
Jetzt befinden sich beide Betriebssysteme auf Gleichstand, daher können wir mit dem nächsten Schritt fortfahren. Dieser besteht darin nicht benötigten Speicherplatz freizugeben. Unter Windows geschieht das mit SDelete. Ist das Archiv herunter geladen und entpackt wird sdelete.exe auf der Kommandozeile wie folgt aufgerufen:

C:\PATH\TO\SDelete\sdelete.exe -z C:

Unter Linux gibt es dafür zerofree, das für die gängigsten Distributionen zur Verfügung stellt. Allerdings sieht der Aufruf natürlich entsprechend anders aus:

# zerofree /dev/sda1

Nachdem der freie Speicherplatz mit Nullen beschrieben wurde sollte die virtuelle Maschine herunter gefahren werden. Nun ist das Vorgehen für beide Betriebssystemwelten gleich, da wir ab jetzt auf Tools von VirtualBox zurückgreifen.
Im einfachsten Fall steht nur noch die eigentliche Verkleinerung der virtuellen Festplatte aus. Der Befehl dazu muss direkt auf dem Hostsystem aufgerufen werden:

# VBoxManage modifyhd --compact schulung-windows-disk1.vdi

Leider können nur VDI-Images “geshrinkt” werden, was eine vorherige Konvertierung bei VMDK-Images unumgänglich macht:

# VBoxManage clonehd schulung-windows-disk1.vmdk schulung-windows-disk1.vdi --format vdi

Die Konvertierung zurück nach VMDK ist dann entsprechend umgekehrt:

# VBoxManage clonehd schulung-windows-disk1.vdi schulung-windows-disk1.vmdk --format vmdk

Durch die geringere Belegung des Speicherplatzes werden unsere Schulungsnotebooks nun innerhalb kürzester Zeit installiert, sodass wir noch mehr Teilnehmer zu unseren interessanten Trainings begrüßen können 😉

Markus Waldmüller
Markus Waldmüller
Lead Senior Consultant

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Lead Senior Consultant gelandet. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.