HDD erweitern


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.

hdd_erweitern.jpg

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ß.

hdd_neue_groesse_pve.jpg

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

hdd_fstab.jpg

nachher

hdd_fstab2.jpg

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

hdd_fstab3.jpg

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