Festplatte einer virutellen Linux-Maschine vergrößern

15. Juni 2022 · Betriebssysteme · andreas · Kein Kommentar

Wenn die Festplatte einer virtuellen Maschine volläuft, so kann im Gegensatz zu physikalischen Rechnern das Problem meist recht einfach behoben werden. Etwas spannender wird es, wenn die virtuelle Festplatte partitioniert ist und bei der Erweiterung eine andere Partition im Weg ist:

$ sudo fdisk -l /dev/sda
Disk /dev/sda: 30,18 GiB, 32408698880 bytes, 63298240 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf3f6188b

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        2048 61296639 61294592 29,2G 83 Linux
/dev/sda2       61298686 63297535  1998850  976M  5 Extended
/dev/sda5       61298688 63297535  1998848  976M 82 Linux swap / Solaris

Das oben stehende Beispiel zeigt eine solche Situation: die eigentliche Daten- bzw. Betriebssystempartition “/dev/sda1” kann nicht einfach vergrößert werden, da die erweiterte Partition “/dev/sda2” mit der darin enthaltenen Swap-Partition “/dev/sda5” direkt anschließend auf dem Datenträger liegt.

Sofern man nicht gerade mit einer virtuellen Maschine arbeitet, deren Verlust man verschmerzen kann, sollten die folgenden Schritte nicht ohne vorherige Komplettsicherung durchgeführt werden.

Es kann immer etwas schiefgehen und schlimmstenfalls steht man am Ende des Prozesses mit einer Maschine da, deren Partitionen beschädigt sind und die ggf. nicht mehr in der Lage ist, zu starten.

Glücklicherweise gibt es mit GParted eine Live-CD, mit deren Hilfe die notwendigen Schritte recht einfach bei heruntergefahrenem System in einer grafischen Oberfläche durchgeführt werden können.

In einem ersten Schritt wird der Download der Live-CD von GParted gestartet, i.d.R. wird die Datei benötigt, welche auf “amd64.iso” endet, wobei die GParted-Website auch nochmals auf mögliche Risiken und Nebenwirkungen hinweist:

CAUTION: Editing partitions has the potential to cause LOSS of DATA.
You are advised to BACKUP your DATA before using gparted. [Quelle]

Dann wird die virtuelle Maschine heruntergefahren, falls noch nicht geschehen gesichert und anschließend die virtuelle Festplatte vergrößert.

In Oracle VirtualBox wird dies z.B. erledigt, in dem unter “Datei” > “Manager für virtuelle Medien” die gewünschte Festplatte ausgewählt und die Größe entweder durch Eingabe eines Wertes oder über den Schieberegler angepasst wird.

Anschließend kann mit “Sichern” die Größenänderung gesichert werden. Dann wird die heruntergeladene GParted-Live-CD ins CD-Rom-Laufwerk der virtuellen Maschine eingelegt und von dieser das System gestartet.

Beim Start von GParted können die meisten Fragen durch Drücken der “Eingabe”-Taste bei den Vorgabewerten belassen werden, wer möchte kann aber z.B. bei der Sprachwahl auf “Deutsch” umstellen.

Wenn GParted gestartet ist, sieht man dann die Platte mit den darauf enthaltenen Partitionen und dem dahinter verfügbaren, nicht zugeteilten Speicher:

In GParted kann entweder eine Reihe von Änderungen vorausgeplant und dann mit dem Klick auf den grünen Haken “Alle Operationen ausführen” auf einen Rutsch ausgeführt werden oder der Haken kann nach jeder Änderung geklickt werden. Um ggf. Fehlplanungen leichter lokalisieren zu können, empfiehlt es sich, den Haken nach jeder Änderung zu klicken.

Als erstes wird “/dev/sda2” vergrößert, so daß der komplette Platz eingenommen wird. Ggf. muß am Ende ein kleiner Sicherheitsbereich freigelassen werden, weil sonst eine Meldung erscheint, daß die Partition nicht über das Ende der Platte hinaus ausgedehnt werden kann.

Im nächsten Schritt wird die Swap-Partition “/dev/sda5” ans Ende von /dev/sda2 verschoben, so daß der nicht zugeteilte Speicher anschließend innerhalb von “/dev/sda2” vor “/dev/sda5” liegt.

Nun kann “/dev/sda2” von vorne her verkleinert werden, so daß sich der nicht zugeteilte Platz zwischen “/dev/sda1” und “/dev/sda2” befindet, also genau dort, wo er zur Erweiterung von “/dev/sda” benötigt wird.

In einem letzten Schritt wird nun “/dev/sda1” so erweitert, daß der komplette nicht zugeteilte Platz der Partition zugeordnet wird.

Anschließend kann GParted beendet, die Live-CD ausgeworfen und die virtuelle Maschine neu gestartet werden.

Sofern alle Schritte erfolgreich waren, sollte diese weiterhin starten und die geänderten Werte dann auch innerhalb des Betriebsystems korrekt angezeigt werden:

$ sudo fdisk -l
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf3f6188b

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        2048 81299455 81297408 38,8G 83 Linux
/dev/sda2       81299456 83300351  2000896  977M  5 Extended
/dev/sda5       81301504 83300351  1998848  976M 82 Linux swap / Solaris