Die VM wird 2x rebootet während der Anleitung
Ich habe das Template ja nur auf 10GB gebaut, allerdings reicht das nicht immer. Um die HDD zuvergrößern, sind einige Schritte notwendig. Ich empfehle jedem mindestens einen Snapshot von der VM zu machen wenn nicht sogar ein Backup. Es dürften zwar keine Daten verloren gehen, aber der Teufel ist bekanntlich ein Eichhörnchen. Ich habe für die Anleitung einen Klon erstellt und den starte ich nun erstmal.
Los geht´s
Gucken wir uns mal an, wie die Platte partitioniert ist
vm_user@TestHDD:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 10G 0 disk ├─sda1 8:1 0 9G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 975M 0 part [SWAP] sr0 11:0 1 4M 0 rom
Uns interessiert nur das was bei sda auftaucht. 10G ist die aktuelle Größe. Die wir nun in Proxmox erstmal erweitern. Dafür gehen wir links auf unsere VM die wir erweitern wollen, in der Mitte wählen wir Hardware und rechts unsere HDD. Oberhalb ist eine Menü Leiste dort wählen wir Disk-Aktion aus und klicken dann auf Größe anpassen.
Wichtig im kleinen Fenster das dann aufgeht gibt man die Größe an um die man die Disk erweitern will, nicht die Gesamtgröße.
Wir erhöhen den Speicher der HDD mal um 10G und siehe da, in Proxmox ist die HDD nun 20G groß.
Nun schauen wir auf der VM per SSH
vm_user@TestHDD:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 20G 0 disk ├─sda1 8:1 0 9G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 975M 0 part [SWAP] sr0 11:0 1 4M 0 rom
Wir sehen sda ist auch 20G groß, aber natürlich sind diese noch nicht verteilt. Das machen wir nun.
Als erstes werden wir root
sudo su
hinter sda5 steht swap, das schalten wir ab
swapoff /dev/sda5
nun starten wir fdisk und lassen uns alle partitionen Anzeigen
root@TestHDD:/home/vm_user# fdisk /dev/sda Welcome to fdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. This disk is currently in use - repartitioning is probably a bad idea. It's recommended to umount all file systems, and swapoff all swap partitions on this disk. Command (m for help): p Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Disk model: QEMU 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: 0x9bc38413 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 18970623 18968576 9G 83 Linux /dev/sda2 18972670 20969471 1996802 975M 5 Extended /dev/sda5 18972672 20969471 1996800 975M 82 Linux swap / Solaris
wir schreiben uns den Startsektor von sda1 weg und die Anzahl der Sektoren für sda2 und sda5
nun löschen wir mit d alle Partitionen.
Command (m for help): d Partition number (1,2,5, default 5): Partition 5 has been deleted. Command (m for help): d Partition number (1,2, default 2): Partition 2 has been deleted. Command (m for help): d Selected partition 1 Partition 1 has been deleted.
nun erstellen wir als erstes sda1 neu. 20.000.000 Sektoren entsprechen etwa 10 GB. Wir sehen unten die maximale Anzahl der Sektoren (41943039). Davon ziehen wir nun die Anzahl ab die oben für sda2 standen. In unserem Beispiel wäre das Ergebnis dann 39946237. Bis dahin erstellen wir sda1. Die Signatur darf nicht gelöscht werden.
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): First sector (2048-41943039, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 39946237 Created a new partition 1 of type 'Linux' and of size 19 GiB. Partition #1 contains a ext4 signature. Do you want to remove the signature? [Y]es/[N]o: n
Nun ist sda1 erstellt aber wir brauchen natürlich noch sda2 als erweiterte Partition und sda5 als unser Swap Laufwerk.
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 (39946238-41943039, default 39946240): Last sector, +/-sectors or +/-size{K,M,G,T,P} (39946240-41943039, default 41943039): Created a new partition 2 of type 'Extended' and of size 975 MiB. Command (m for help): n All space for primary partitions is in use. Adding logical partition 5 First sector (39948288-41943039, default 39948288): Last sector, +/-sectors or +/-size{K,M,G,T,P} (39948288-41943039, default 41943039): Created a new partition 5 of type 'Linux' and of size 974 MiB.
Bei sda5 muss noch der Typ geändert werden. Der richtige Hex-Code für eine Swap Partition unter Linux ist 82.
Command (m for help): t Partition number (1,2,5, default 5): 5 Hex code or alias (type L to list all): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris'.
Nun speichern wir alle Änderungen in fdisk mit
w
Dem Kernel geben wir die Änderungen mit dem Befehl mit
partx /dev/sda
Nun noch die Größe des Dateisystems mit
resize2fs /dev/sda1
anpassen.
Mit
df -h /
sehen wir nun die neue Größe.
Die nächsten Punkte müssen vor einem Reboot durchgeführt werden
Wir müssen die Boottabelle ändern. Dafür rufen wir die fstab auf
nano /etc/fstab
und ändern die Zahl in /dev/sda5
nachher
Nun müssen wir unsere VM rebooten.
reboot
wir wechseln wieder zu root und stellen nun die Swap Partition wieder her und lesen die UUID aus
mkswap /dev/sda5 swapon /dev/sda5 root@TestHDD:/home/vm_user# blkid /dev/sr0: BLOCK_SIZE="2048" UUID="2023-08-15-10-44-58-00" LABEL="cidata" TYPE="iso9660" /dev/sda1: UUID="9ab3f01f-4dc6-47fa-becb-840ffcb75eff" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="9bc38413-01" /dev/sda5: UUID="536f6dd4-3e1e-46f7-8b76-cd77a2384c08" TYPE="swap" PARTUUID="9bc38413-05"
UUID=536f6dd4-3e1e-46f7-8b76-cd77a2384c08 das tragen wir also wieder in die fstab ein, achtet auf die „ “ und entfernt sie
Nun schließen wir das ganze mit einem Reboot ab
reboot
mit
sudo swapon --show
kann man danach schauen ob eine aktive Swap Partition angezeigt wird.
Die richtige Ausgabe wäre sowas in der Art
NAME TYPE SIZE USED PRIO /dev/sda5 partition 974M 0B -2