Falls man mal eine virtuelle Festplatte zu klein gewählt hat, gibt es eine einfache Möglichkeit die Größe zu ändern. Allerdings muss man sich dazu in die Konsole begeben. Die Eingabe des folgenden Befehls muss auf dem VM Host erfolgen.
vboxmanage modifyhd /home/vbox/VirtualBox\ VMs/<virtuelle Maschine>/Festplattenname.vdi --resize 16384
Nach einer kleinen Wartezeit ist dann die Festplatte auf die gewünschte Größe angewachsen. Der Parameter „–resize“ erwartet allerding nur Angaben in MB-Größe. Meine Festplatte hat hier 16 GByte.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Partition unter Linux vergrößern und Dateisystem anpassen.
! Achtung wer hier noch keine Datensicherung gemacht hat, sollte unbedingt eine anlegen. Ab hier kann es Datenverlust geben ! Jeder ist für sein tun und handeln selbst verantwortlich !
Nun muss in die Konsole des Gastes (VM) gewechselt werden. Wichtig, wir brauchen root Rechte. Als erstes sollte man sich die aktuelle Partitionierung dokumentieren. Wichtig ist vor allem der Startsektor der ersten primären Partition. Sicherheitshalber muss auch dem Betriebssystem mitgeteilt werden, dass kein Swap zur Verfügung steht.
swapoff -a
fdisk /dev/sda Mit der Eingabe von "m" kann man sich alle möglichen Befehle anzeigen lassen. Mit "p" wir die aktuelle Partitionstabelle angezeigt.
Command (m for help): p Disk /dev/sda: 15,6 GiB, 16777216000 bytes, 32768000 sectors 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: 0xxxxxxxx Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 15988735 15986688 7,6G 83 Linux /dev/sda2 15990782 16775167 784386 383M 5 Extended /dev/sda5 15990784 16775167 784384 383M 82 Linux swap / Solaris
Hier ist nun schon zu sehen, dass die Festplatte in etwa 16 GB hat. Allerdings werden von allen Partitionen nur etwa 8 GB belegt. Jetzt kann man mit „d“ jede Partition einzeln löschen. Sind alle gelöscht, werden mit dem Befehl „n“ wieder die neuen Partitionen angelegt. Hierbei ist peinlichst genau darauf zu achten, dass die erste Linuxpartition wieder den selben Startsektor hat wie die alte Partition.
Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-32767999, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-32767999, default 32767999): +15G
Wichtig ist auch eine primäre Partition zu erstellen. Diese muss auch die gleiche Partitionsnummer haben. Mit „+15G“ habe ich die Größe festgelegt. Ist das geschehen, so müssen noch die erweiterte Partition mit der Swap-Partition angelegt werden.
Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): e Partition number (2-4, default 2): First sector (31459328-32767999, default 31459328): Last sector, +sectors or +size{K,M,G,T,P} (31459328-32767999, default 32767999): Created a new partition 2 of type 'Extended' and of size 639 MiB.
Drückt man hier nur <Enter>, werden die vorgeschlagenen Werte eingesetzt. Was auch richtig ist. Die erweiterte Partition mit 639 MB wurde angelegt. Nun muss noch eine logische Partition erzeugt werden und es muss der Partitionstyp auf „Swap“ geändert werden.
Command (m for help): n Partition type p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (31461376-32767999, default 31461376): Last sector, +sectors or +size{K,M,G,T,P} (31461376-32767999, default 32767999): Created a new partition 5 of type 'Linux' and of size 638 MiB. Command (m for help): t Partition number (1,2,5, default 5): 5 Hex code (type L to list all codes): 82
Die zu ändernde Partition hat hier die Nummer 5. Nun kann man sein Werk betrachten.
Command (m for help): p Disk /dev/sda: 15,6 GiB, 16777216000 bytes, 32768000 sectors 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: 0xxxxxxxx Device Boot Start End Sectors Size Id Type /dev/sda1 2048 31459327 31457280 15G 83 Linux /dev/sda2 31459328 32767999 1308672 639M 5 Extended /dev/sda5 31461376 32767999 1306624 638M 82 Linux swap / Solaris
Bis hierher ist noch nichts passiert! Die Partitionstabelle ist noch nicht überschrieben. Wer also keine Datensicherung hat, sollte schleunigst eine machen.
Ist man sich sicher, kann man mit „w“ die neue Partitionstabelle speichern. Nun muss das Betriebssystem neu gestartet werden, da der Kernel die Änderung an der Partitionstabelle nicht mitbekommen hat.
reboot
Der Neustart wird etwas länger dauern, da das Betriebssystem die Swap-Partition suchen wird und nicht mounten kann.
Ist der Neustart geglückt, so kann man das Dateisystem vergrößern und eine neu Swap-Partition anmelden.
resize2fs -p /dev/sda1
Nachdem das Dateisystem erfolgreich vergrößert wurde, kann man nun die neue Swap-Partition erstellen.
mkswap /dev/sda5 Setting up swapspace version 1, size = 653308 KiB no label, UUID=ca7fc644-0e84-4c13-8802-1bbb5a1e2024
Nach erfolgreicher Durchführung gibt das Tool die neue UUID der Partition bekannt. Diese muss noch in der fstab eingetragen werden.
vim /etc/fstab
UUID=ca7fc644-0e84-4c13-8802-1bbb5a1e2024 none swap sw 0 0
Hier reicht es den bereits vorhandenen Eintrag mit der neuen UUID zu korrigieren. Ist das erfolgt, so kann dem Betriebssystem wieder mitgeteilt werden, dass es einen Swap-Bereich hat und nutzen kann.
swapon -a