Speicherplatz von Linux VMs vergrößern
Wenn man z.B. in Proxmox die Festplatte einer Virtuellen Maschine vergrößert, steht dieser Platz nicht zur Verfügung. Dazu müssen zuerst das Dateisystem und die Partition vergrößert werden. Diese Anleitung wurde für Debian Systeme erstellt.
Wichtig: Zunächst sollte ein Backup der Virtuellen Maschine erstellt werden. Beim verstellen der Partitionen passieren schnell Fehler die nicht mehr Rückgängig gemacht werden können. Angaben ohne Gewähr!
Mit diesem Befehl kann man sich den aktuell verfügbaren Speicherplatz ansehen:
usw@usw:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 9.8G 0 9.8G 0% /dev
tmpfs 2.0G 544K 2.0G 1% /run
/dev/sda1 31G 20G 9.1G 69% /
tmpfs 9.8G 0 9.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /run/user/1000
Man sieht auch dass die Root-Partition /dev/sda1
ist da sie auf /
gemountet ist.
Standardmäßig befindet sich die Swap-Partition am Ende der Festplatte. Sie versperrt also die Erweiterung der Root-Partition. Dafür muss diese Verschoben werden.
Swap Verschieben
Zunächst muss der Swap verschoben werden. Mit diesem Befehl kann man die gesamte größe und die partitionen sehen:
usw@usw:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 128 GiB, 137438953472 bytes, 268435456 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: 0xb9c69ded
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 132216831 132214784 63G 83 Linux
/dev/sda2 132218878 134215679 1996802 975M 5 Extended
/dev/sda5 132218880 134215679 1996800 975M 82 Linux swap / Solaris
Notiere die Gesamtanzahl der Sektoren, hier 268435456
.
1GB entspricht ~2,097,152 Sektoren (angenommen ein Sektor entspircht 512 Byte wie oben).
Subtrahiere 2,097,152 von der gesamtanzahl der Sektoren ab:
Startsektor = Anzahl Sektoren - 2097152
- Beispiel:
268435456 - 2097152 = 266338304
.
Bisherige Swap-Partition deaktivieren
Falls eine Swap-Partition existiert, kann sie so deaktiviert werden:
sudo swapoff /dev/sda5
So kann überprüft werden dass kein Swap mehr aktiv ist:
swapon --show
Bisherige Swap-Partition entfernen
Mithilfe von fdisk kann man die bisherige Swap-Partition löschen.
sudo fdisk /dev/sda
Im obigen Beispiel befindet sich die Swap-Partition (sda5) innerhalb einer Extended Partition (sda2). In diesem Fall müssen beide gelöscht werden.
p
um die Partitionstabelle auszugeben.d
um eine Partition zu löschen.- Nummer der zu Löschenden Partition eingeben. (z.B.
5
). d
um ggf. eine weitere Partition zu löschen.- Nummer der zu Löschenden Partition eingeben. (z.B.
2
). w
um die Änderungen auf die Festplatte zu schreiben.
Neue Swap-Partition erstellen
Anschließend kann die neue Swap-Partition erstellt werden:
sudo fdisk /dev/sda
In fdisk
die folgenden Befehle ausführen:
n
um eine neue Partition zu erstellen.p
um eine Primäre Partition zu erstellen.- Nächste freie Nummer eingeben (z.B.
2
). - Den vorher berechneten Startsektor eingeben.
Enter
drücken um den standard Wert für den Letzten Sektor zu übernehmen. (Ende der Platte).t
um die Art einer Partition zu ändern.- Die neue Partitionsnummer auswählen (z.B.
2
). - Den Typ
82
für Linux swap wählen. w
um die Änderungen auf die Festplatte zu schreiben.
Neue Swap-Partition formatieren
Die neue Swap-Partition formatieren:
sudo mkswap /dev/sda2
Neue Swap-Partition aktivieren
Swap Aktivieren:
sudo swapon /dev/sda2
Überprüfen mit:
swapon --show
Änderung der Swap-Partition Persistent machen
Die UUID der Swap-Partition auslesen:
usw@usw:~$ sudo blkid /dev/sda2
/dev/sda2: UUID="4ac5f6bb-373e-49f3-bc85-f100dea2cf6c" TYPE="swap" PARTUUID="b9c69ded-02"
Notiere die UUID (hier "3ec470db-ef5c-49f3-bc85-f100dea2cf6c").
Nun die neue Partition in der fstab
eintragen:
sudo nano /etc/fstab
Folgende Zeile ändern:
UUID=<SWAP-UUID> none swap sw 0 0
Ersetze die <SWAP-UUID>
mit der UUID aus dem blkid
Befehl.
Mit diesem Befehl kann die Config überprüft werden:
sudo swapon -a
Speicherplatz erweitern
Mit growpart
wird die Root-Partition erweitert.
sudo apt install cloud-utils
sudo growpart /dev/sda 1
Der Parameter -N
gibt die Änderungen aus, schreibt aber keine änderungen auf die Festplatte.
Nachdem die Partition vergrößert wurde, muss auch das Dateisystem erweitert werden:
sudo resize2fs /dev/sda1
Nun sollte der Speicherplatz verfügbar sein:
df -h
lsblk
Neustarten und Verifizieren
Virtuelle Maschine neustarten:
sudo reboot
Nach dem Neustart überprüfen dass der Swap aktiv ist:
sudo swapon --show
Zuletzt bearbeitet am: 05.01.2025
Erschienen am: 05.01.2025