VirtualBox: Plattenplatz verdoppeln in 30 Minuten

Vor einiger Zeit habe ich mir mit VirtualBox einen virtuellen Windows-PC eingerichtet und ihm eine virtuelle Festplatte mit satten 5GB Platz spendiert. Das war auch das Maximum, was ich wegen knapper Ressourcen auf dem Notebook investieren konnte.

Mittlerweile habe ich ein volles Laufwerk C: (Allein für einen Lotus Domino Administrator gehen inkl. Mail-Datenbank ~1GB „verloren“). Nun war Handeln angesagt. Leider ist es m.E. nicht möglich, eine virtuelle Festplattendatei (VDI) mit VirtualBox-Bordmitteln zu vergrößern. Aber das war kein Problem.

Ich legte ein neues VDI-File mit 10GB Platz an (dynamisch wachsend), holte mir die GRML-Live CD (medium) und legte eine neue virtuelle Maschine an. Diese bootet von dem LiveCD-Image und bindet das
bisherige Windows-VDI-File (als /dev/sda) sowie das neu angelegte VDI-File (als /dev/sdb) als Festplatten ein. Diese virtuelle Maschine wird gestartet und dann im GRML-Linux der Inhalt der bisherigen „Platte“ auf die neue „Platte“ kopiert:

dd if=/dev/sda of=/dev/sdb bs=512

Nach ~15min war das erledigt. Nun kann der virtuelle GRML-Rechner wieder heruntergefahren werden. Nun muss die Partition in der neuen virtuellen Festplatte noch vergrößert werden.

Als nächstes habe ich also die neue Platte zu dem bestehenden virtuellen Windows-PC als „Primary Slave“ hinzugefügt und die virtuelle Maschine gestartet. Nun eine DOS-Box im virtuellen Rechner öffnen und mit diskpart die Partition vergrößern:

c:>diskpart
diskpart> select disk 1
diskpart> select volume 2
diskpart> extend
...
diskpart> exit

Nun kann der virtuelle Windows-Rechner herunter gefahren werden. Das bisherige VDI-File wird ausgehängt und statt dessen das Neue als „Primary Master“ angemeldet. Fertig.

PS: Ich hätte statt der GRML-LiveCD natürlich auch eine GParted-LiveCD nehmen können und mir damit die Basteleien mit diskpart erspart. Allerdings hinterlässt GParted ein modifiziertes NTFS-Image mit dem Dirty-Flag und beim nächsten Windows-Start spring checkdisk an. Und ob ich das Ganze dann in 30min geschafft hätte…