Nach einem Festplatten-Upgrade Ihres VPS Linux Infrawire ist die virtuelle Platte größer, doch Partition und Dateisystem haben noch die alte Größe. Beides müssen Sie von Hand erweitern, und zwar im laufenden Betrieb, ohne das Root-Dateisystem auszuhängen.
Diese Anleitung behandelt normale Partitionen (ext4 und XFS) sowie LVM-Setups unter Ubuntu 24.04, Debian 12, AlmaLinux 9 und Rocky 9.
📋 Voraussetzungen
- Ein VPS, dessen Festplatte bereits vergrößert wurde (die neue Größe erscheint in
lsblk) - Root-SSH-Zugang (IP und Root-Passwort finden Sie in Ihrem Kundenbereich)
- Eine aktuelle Sicherung Ihrer wichtigen Daten
1. Vor dem Eingriff sichern
Das Vergrößern eines eingehängten ext4- oder XFS-Dateisystems ist Routine, aber ein Fehler in der Partitionstabelle kann Daten zerstören. Sichern Sie zuerst das Wichtigste:
Bash# Unersetzliche Daten archivieren tar -czf /root/backup-etc.tar.gz /etc rsync -avz /var/www/ USER@BACKUP_HOST:/backups/www/ # Partitionstabelle sichern (zum Wiederherstellen nützlich) sfdisk -d /dev/vda > /root/vda-partition-table.txt
2. Platte, Partition und Dateisystem ermitteln
Bashlsblk -f df -hT /
Typische Ausgabe: Platte vda mit 80G, Partition vda1 mit 40G, eingehängt auf /, Dateisystem ext4 oder xfs. Liegt die Wurzel auf /dev/mapper/..., nutzen Sie LVM: siehe Abschnitt 5. Die Platte kann auch sda oder nvme0n1 heißen (Partitionen enden dann auf p1).
3. Partition mit growpart erweitern
Installieren Sie das Werkzeug. Unter Ubuntu und Debian heißt das Paket cloud-guest-utils, unter AlmaLinux und Rocky cloud-utils-growpart:
Bash# Ubuntu / Debian apt update && apt install -y cloud-guest-utils # AlmaLinux / Rocky dnf install -y cloud-utils-growpart
Erweitern Sie dann Partition Nummer 1 der Platte /dev/vda (beachten Sie das Leerzeichen zwischen Platte und Nummer):
Bashgrowpart /dev/vda 1
Meldet das Tool NOCHANGE, belegt die Partition bereits den gesamten Platz. Manche Images haben hinter der Root-Partition noch eine kleine Partition (z. B. Swap): Dann kann growpart die Root-Partition nicht erweitern, und Sie müssen diese Partition zuerst entfernen oder verschieben.
Prüfen Sie, ob der Kernel die neue Größe sieht:
Bashlsblk /dev/vda # Falls noch die alte Größe erscheint: partprobe /dev/vda
4. Dateisystem erweitern
Verwenden Sie den Befehl passend zu Ihrem Dateisystemtyp (siehe lsblk -f).
Für ext4:
Bashresize2fs /dev/vda1
Für XFS (Standard unter AlmaLinux und Rocky). Das Argument ist der Einhängepunkt, nicht das Gerät, und XFS kann nur wachsen, nie schrumpfen:
Bashxfs_growfs /
5. LVM-Fall: pvresize und lvextend
Liegt das Root-Volume auf LVM, kommt eine Ebene hinzu: Partition, dann Physical Volume, dann Logical Volume, dann Dateisystem.
Bashlsblk pvs && vgs && lvs # 1. Die Partition mit dem Physical Volume erweitern (hier vda3) growpart /dev/vda 3 # 2. LVM mitteilen, dass das Physical Volume größer ist pvresize /dev/vda3 # 3. Logical Volume und Dateisystem in einem Schritt erweitern (-r) lvextend -r -l +100%FREE /dev/mapper/VG_NAME-LV_NAME
Die Option -r ruft das passende Werkzeug (resize2fs oder xfs_growfs) automatisch auf. Passen Sie VG_NAME-LV_NAME an die Ausgabe von lvs an, z. B. /dev/ubuntu-vg/ubuntu-lv. Um nur einen Teil des freien Platzes zu nutzen, ersetzen Sie -l +100%FREE durch -L +10G.
6. Ergebnis prüfen
Bashdf -h / lsblk
Die Spalte Size von df -h muss nun der neuen Kapazität entsprechen, und lsblk muss die Partition über die ganze Platte zeigen. Ein Neustart ist nicht nötig. Ihre Anwendungen laufen während des gesamten Vorgangs weiter.
🛠️ Fehlerbehebung
growpart: command not found: Das Paket fehlt. Installieren Sie cloud-guest-utils (apt) oder cloud-utils-growpart (dnf).
NOCHANGE: partition 1 could not be grown: Entweder wurde die Platte nicht wirklich vergrößert (vergleichen Sie lsblk mit Ihrer Bestellung), oder direkt hinter der Partition liegt eine weitere. Prüfen Sie mit fdisk -l /dev/vda.
resize2fs: Bad magic number in super-block: Das Dateisystem ist vermutlich XFS, nicht ext4. Führen Sie lsblk -f aus und nutzen Sie stattdessen xfs_growfs /.
xfs_growfs: / is not a mounted XFS filesystem: Sie haben einen Gerätenamen angegeben, oder das Dateisystem ist ext4. Geben Sie den Einhängepunkt an und prüfen Sie vorher den Typ.
lvextend meldet keine freien Extents: Sie haben growpart oder pvresize ausgelassen. Führen Sie pvs aus und prüfen Sie die Spalte PFree.
🎉 Ihr zusätzlicher Speicherplatz ist nutzbar: ohne Neustart, ohne Ausfall, und df -h beweist es!