Vergrößern einer virtuellen Festplatte in VirtualBox

Kennen Sie dass? Sie wollen etwas in einer virtuellen Linux/Windows/etc... Umgebung ausprobieren und legen dafür eine virtuelle Maschine mit einer virtuellen Festplatte mit 10GB an. In der Regel reicht das oft. Aber jetzt stellen Sie fest das der Platz eben nicht mehr ausreicht. Das Anlegen einer neuen virtuellen Datei und das Neuaufsetzen des Betriebssystems sowie das kopieren der Daten, alles ist ziemlich Zeitaufwändig. Sie denken sich, ok, mal schauen ob ich mir mit vboxmanage helfen kann. Es gibt da den Parameter: "modifiymedium" und dieser hat die wunderbare Option: --resize. "Toll" denken Sie, und probieren das gleich mal aus. Und dann die herbe Enttäuschung:

0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize medium operation for this format is not implemented yet!

Hmm... blöd... na gut... aber es gibt noch eine andere Möglichkeit (Voraussetzung das Gastbetriebssystem ist Linux):

Dafür brauchen wir drei Dinge:

  1. Genug Platz für die neue virtuelle Festplatte.
  2. Eine bestehende virtuelle Linux-Box wo wir die neue Festplatte einbinden können.
  3. gparted in dieser Linux-Box



Los gehts:

  1. Erstellen Sie mit vboxmanage createmedium eine neue virtuelle Festplatten-Datei. Wir gehen mal davon aus daß diese eine feste Größe (hier 15GB) haben soll.

    vboxmanage createmedium disk --filename d:\VirtualBox\debian\debian.vdi --size 15001 --format VDI
  2. Jetzt kommt der wichtige Befehl: Wir kopieren die Daten von der alten virtuellen Festplatte auf die neue um. Dafür bemühen wir wieder vboxmanage:

    vboxmanage clonemedium d:\VirtualBox\debian\debian_harddisk.vdi d:\VirtualBox\debian\debian.vdi --existing

    Wichtig ist die Option --existing
  3. Jetzt brauchen wir nur noch mit gparted die der Partition anzupassen und die neue Platte einzubinden und wir sind fertig. Dazu starten wir fix das Linux, starten gparted und passen die Größe an. Danach herunterfahren Medium in die virtuelle Box einbinden und wir sind fertig. Falls sich die Größe der Partition nicht ändern lässt, liegt das an der UUID der Partition. Es sind jetzt zwei Partitionen mit der selben UUID im System und die neue virtuelle Partition braucht eine neue ID. Das geht mit den Tools tune2fs und uuid. Um die UUID der Partition /dev/sdb1 zu ändern, folgenden Befehl verwenden: tune2fs /dev/sdb1 -U `uuid`
  4. Letzter Schritt:

    Durch die neue UUID werden noch folgende Änderungen nötig: die neue UUID in /etc/fstab bekannt machen und update-grub ausführen.
    • die Partition mounten und proc, sys, dev einbinden, danach dahin chrooten: chroot /media/{USER}/{UUID} /bin/bash
    • sudo nano /etc/fstab und bei / die UUID durch die neue erstetzen ( falls die SWAP Partition auch betroffen ist, auch hier änderen)
    • den Bootmanager Grub aktualisieren mit update-grub
Image: