LINUX-TUTORIAL · DEBIAN · PARTITIONSVERWALTUNG
Debian: Partition einer virtuellen Festplatte im laufenden Betrieb vergrößern
Mehr Speicherplatz für Debian ohne Neuinstallation und möglichst ohne Neustart
Eine virtuelle Festplatte wurde unter Proxmox, KVM oder einer anderen Virtualisierungsplattform vergrößert, doch Debian zeigt weiterhin die ursprüngliche Partitionsgröße an? In dieser Anleitung zeigen wir Schritt für Schritt, wie sich eine Partition wie /dev/vda4 unter Debian erweitern lässt. Dabei betrachten wir klassische ext4-Dateisysteme, XFS und LVM, erklären typische Fehlerquellen und zeigen, wie sich die Erweiterung im laufenden Betrieb durchführen lässt.
1. Einleitung
Früher oder später steht nahezu jeder Linux-Administrator vor demselben Problem: Der Speicherplatz auf einem Server wird knapp. Logdateien wachsen, Datenbanken benötigen zusätzliche Kapazitäten oder neue Anwendungen beanspruchen mehr Speicherplatz als ursprünglich eingeplant.
Bei virtualisierten Servern ist die Erweiterung der virtuellen Festplatte meist unkompliziert. Unter Proxmox VE, KVM oder VMware lässt sich die Größe einer virtuellen Festplatte häufig mit wenigen Klicks erhöhen.
Doch damit ist die Arbeit noch nicht abgeschlossen.
Denn obwohl die virtuelle Festplatte bereits größer geworden ist, verwendet Debian zunächst weiterhin die ursprünglichen Partitionen und Dateisystemgrößen.
Hier müssen wir zwischen drei Ebenen unterscheiden:
- Virtuelle Festplatte: Das vom Hypervisor bereitgestellte Blockgerät, beispielsweise
/dev/vda. - Partition: Ein abgegrenzter Bereich auf der Festplatte, beispielsweise
/dev/vda4. - Dateisystem: Die Struktur, in der Linux Dateien und Verzeichnisse speichert, beispielsweise ext4 oder XFS.
Alle betroffenen Ebenen müssen entsprechend angepasst werden.
In diesem Tutorial erweitern wir beispielhaft die Partition /dev/vda4.
Die Anleitung richtet sich insbesondere an Administratoren von Debian 12 und Debian 13, lässt sich aber grundsätzlich auch auf andere Linux-Distributionen übertragen.
2. Voraussetzungen
Für die Erweiterung benötigen wir:
- Einen Debian-Server mit Root-Zugriff beziehungsweise
sudo-Berechtigungen. - Eine bereits vergrößerte virtuelle Festplatte oder anderweitig verfügbaren, unmittelbar angrenzenden Speicherplatz.
- Kenntnisse über das verwendete Dateisystem.
- Ein aktuelles, überprüftes Backup.
- Idealerweise einen Konsolenzugriff über den Hypervisor.
Die nachfolgenden Beispiele verwenden eine virtuelle Festplatte mit dem Gerätenamen:
/dev/vda
Die zu erweiternde Partition lautet:
/dev/vda4
Wichtig: Die tatsächlichen Gerätenamen können abweichen. Bei anderen Virtualisierungsplattformen oder Controllern werden beispielsweise /dev/sda oder /dev/nvme0n1 verwendet.
Eine Änderung an Partitionstabellen ist grundsätzlich mit Risiken verbunden. Insbesondere bei produktiven Systemen sollte vor der Durchführung ein Backup erstellt und ein Wartungsfenster eingeplant werden.
3. Aktuelle Festplatten und Partitionen anzeigen
Bevor wir Änderungen vornehmen, analysieren wir die bestehende Datenträgerstruktur.
Dazu verwenden wir zunächst:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTS
Eine beispielhafte Ausgabe könnte folgendermaßen aussehen:
NAME SIZE FSTYPE TYPE MOUNTPOINTS vda 100G disk ├─vda1 1G vfat part /boot/efi ├─vda2 2G ext4 part /boot ├─vda3 4G swap part [SWAP] └─vda4 43G ext4 part /
In diesem Beispiel verfügt die virtuelle Festplatte bereits über eine Kapazität von 100 GB.
Die Root-Partition /dev/vda4 ist jedoch lediglich 43 GB groß.
Der übrige Speicherplatz steht noch nicht als nutzbare Partition zur Verfügung.
Entscheidend ist, dass sich der freie Speicherplatz unmittelbar hinter der zu erweiternden Partition befindet.
Die Ausgabe von lsblk allein beweist das noch nicht.
3.1 Partitionstabelle genauer untersuchen
Mit folgendem Befehl erhalten wir weitere Informationen:
fdisk -l /dev/vda
Hier erkennen wir unter anderem:
- Die gesamte Festplattengröße.
- Den verwendeten Partitionstabellentyp (GPT oder MBR).
- Die Start- und Endsektoren der Partitionen.
- Die Reihenfolge der Partitionen.
- Die Größe der einzelnen Partitionen.
Zusätzlich lässt sich der freie Speicherplatz anzeigen:
parted /dev/vda unit GiB print free
Falls parted nicht installiert ist:
apt update apt install parted
Besonders wichtig ist, ob hinter /dev/vda4 tatsächlich zusammenhängender freier Speicherplatz vorhanden ist.
Liegt eine weitere Partition dazwischen, kann die Erweiterung nicht einfach mit growpart erfolgen.
3.2 Verwendetes Dateisystem bestimmen
Mit folgendem Befehl zeigen wir die eingebundenen Dateisysteme an:
df -Th
Beispiel:
Filesystem Type Size Used Avail Use% Mounted on /dev/vda4 ext4 42G 30G 10G 75% / /dev/vda2 ext4 1.9G 400M 1.4G 23% /boot
In unserem Beispiel wird /dev/vda4 als ext4-Dateisystem verwendet.
Das ist ein günstiger Ausgangspunkt, denn ext4 unterstützt die Vergrößerung eines eingehängten Dateisystems.
4. Virtuelle Festplatte im Hypervisor vergrößern
Falls die virtuelle Festplatte noch nicht vergrößert wurde, muss dies zunächst auf der Virtualisierungsplattform erfolgen.
4.1 Beispiel: Proxmox VE
Bei Proxmox VE gehen wir folgendermaßen vor:
- Die entsprechende virtuelle Maschine auswählen.
- Den Bereich Hardware öffnen.
- Die betreffende virtuelle Festplatte auswählen.
- Die Funktion Disk Action → Resize aufrufen.
- Die gewünschte zusätzliche Kapazität eintragen.
- Die Erweiterung bestätigen.
Alternativ kann die Vergrößerung auf dem Proxmox-Host über die Kommandozeile erfolgen:
qm resize 100 virtio0 +50G
Hierbei handelt es sich um ein Beispiel.
Die VM-ID 100 und die Festplattenbezeichnung virtio0 müssen an die tatsächliche Konfiguration angepasst werden.
Der Befehl vergrößert die virtuelle Festplatte um zusätzliche 50 GB.
Die virtuelle Maschine muss dafür je nach Konfiguration nicht zwingend ausgeschaltet werden.
4.2 Neue Festplattengröße unter Debian prüfen
Nach der Erweiterung kontrollieren wir innerhalb der virtuellen Maschine:
lsblk
Wird die neue Größe angezeigt, können wir mit der Partitionserweiterung fortfahren.
Falls Debian die neue Größe noch nicht erkannt hat, kann bei unterstützten Geräten ein erneutes Einlesen der Kapazität helfen:
echo 1 > /sys/class/block/vda/device/rescan
Dieser Befehl funktioniert nicht bei jeder virtuellen Controller-Konfiguration. Wenn der entsprechende Sysfs-Pfad nicht vorhanden ist, sollte stattdessen der vom Hypervisor unterstützte Rescan-Weg verwendet oder ein geplanter Neustart durchgeführt werden.
5. Partition mit growpart erweitern
Für die eigentliche Erweiterung verwenden wir das Werkzeug growpart.
Dieses Programm gehört zum Paket cloud-guest-utils und eignet sich besonders für virtuelle Maschinen.
5.1 growpart installieren
Zunächst aktualisieren wir die Paketlisten:
apt update
Anschließend installieren wir das benötigte Paket:
apt install cloud-guest-utils
Nach der Installation prüfen wir, ob das Werkzeug verfügbar ist:
growpart --help
5.2 Erweiterung zunächst simulieren
Bevor wir die Partition verändern, empfiehlt sich ein Testlauf.
growpart -N /dev/vda 4
Die Option -N führt einen sogenannten Dry Run durch.
Dabei zeigt growpart, welche Änderungen vorgenommen würden, ohne die Partitionstabelle tatsächlich zu verändern.
Wir können so kontrollieren, ob die vierte Partition erweitert werden kann.
5.3 Partition tatsächlich vergrößern
Wenn der Test erfolgreich war und ein aktuelles Backup vorliegt, führen wir die Erweiterung durch:
growpart /dev/vda 4
Wichtig ist die Schreibweise:
/dev/vdabezeichnet die gesamte Festplatte.4bezeichnet die Nummer der Partition.
Der Befehl lautet also nicht growpart /dev/vda4, sondern ausdrücklich:
growpart /dev/vda 4
Eine erfolgreiche Ausgabe könnte folgendermaßen aussehen:
CHANGED: partition=4 start=... old: size=... new: size=...
Die Startposition der Partition bleibt erhalten.
Lediglich das Ende der Partition wird in Richtung des freien Speicherplatzes verschoben.
Das vorhandene Dateisystem wird dabei noch nicht vergrößert.
5.4 Neue Partitionsgröße überprüfen
Anschließend kontrollieren wir:
lsblk
Die Ausgabe könnte nun folgendermaßen aussehen:
NAME SIZE FSTYPE TYPE MOUNTPOINTS vda 100G disk ├─vda1 1G vfat part /boot/efi ├─vda2 2G ext4 part /boot ├─vda3 4G swap part [SWAP] └─vda4 93G ext4 part /
Die Partition /dev/vda4 ist jetzt deutlich größer.
Allerdings verwendet das ext4-Dateisystem noch seine bisherige Kapazität.
Falls der Kernel weiterhin die alte Partitionsgröße anzeigt, darf die Dateisystemerweiterung noch nicht gestartet werden. In diesem Fall muss zunächst sichergestellt werden, dass die aktualisierte Partitionstabelle übernommen wurde, gegebenenfalls durch einen Neustart.
6. ext4-Dateisystem vergrößern
Nachdem die Partition erfolgreich erweitert wurde, müssen wir das Dateisystem anpassen.
Bei ext4 verwenden wir dafür:
resize2fs /dev/vda4
Das Werkzeug erkennt automatisch die neue Größe der Partition und erweitert das Dateisystem entsprechend.
Eine manuelle Größenangabe ist normalerweise nicht erforderlich.
6.1 Erweiterung im laufenden Betrieb
Ein großer Vorteil von ext4 ist die Unterstützung für Online-Vergrößerungen.
Ist /dev/vda4 als Root-Dateisystem / eingebunden, kann die Vergrößerung normalerweise ohne vorheriges Aushängen erfolgen.
Damit ist auch eine Erweiterung produktiver Debian-Server ohne Neustart möglich, sofern der Kernel die neue Partitionsgröße bereits erkannt hat.
6.2 Ergebnis überprüfen
Nach Abschluss führen wir erneut aus:
df -Th
Beispiel:
Filesystem Type Size Used Avail Use% Mounted on /dev/vda4 ext4 91G 30G 57G 35% /
Die Root-Partition verfügt jetzt über deutlich mehr freien Speicherplatz.
Die Erweiterung ist abgeschlossen.
7. XFS-Dateisystem vergrößern
Nicht jeder Debian-Server verwendet ext4.
Insbesondere bei bestimmten Serverinstallationen kommt auch XFS zum Einsatz.
XFS unterstützt ebenfalls die Online-Vergrößerung.
Allerdings wird hierfür nicht resize2fs, sondern xfs_growfs verwendet.
Falls die benötigten Werkzeuge fehlen:
apt install xfsprogs
Ist /dev/vda4 als Root-Dateisystem eingebunden, lautet der Befehl:
xfs_growfs /
Bei einem anderen Einhängepunkt verwenden wir entsprechend dessen Pfad.
Beispielsweise:
xfs_growfs /srv/data
Wichtig: XFS wird über den Einhängepunkt des Dateisystems erweitert, nicht über den Gerätenamen.
Die neue Größe prüfen wir anschließend mit:
df -Th
Eine Verkleinerung von XFS-Dateisystemen wird nicht unterstützt. Deshalb sollte die geplante Kapazitätserweiterung sorgfältig geprüft werden.
8. Besonderheit: Partition mit LVM erweitern
Viele Debian-Server verwenden den Logical Volume Manager (LVM).
In diesem Fall reicht es nicht aus, lediglich die Partition und das Dateisystem zu vergrößern.
Zwischen der physischen Partition und dem Dateisystem befinden sich zusätzliche Verwaltungsebenen.
Die Struktur kann beispielsweise folgendermaßen aussehen:
/dev/vda
└── /dev/vda4
└── LVM Physical Volume
└── Volume Group
└── Logical Volume
└── ext4
Zunächst prüfen wir, ob LVM verwendet wird:
lsblk -f
Zusätzlich helfen folgende Befehle:
pvs vgs lvs
8.1 Partition erweitern
Zunächst erweitern wir wie gewohnt die Partition:
growpart /dev/vda 4
8.2 Physical Volume erweitern
Anschließend muss LVM die zusätzliche Kapazität erkennen.
Dazu verwenden wir:
pvresize /dev/vda4
Damit wird das Physical Volume auf die neue Größe angepasst.
8.3 Logical Volume erweitern
Nun können wir den zusätzlichen Speicherplatz einem Logical Volume zuweisen.
Die vorhandenen Logical Volumes zeigen wir an:
lvs
Angenommen, das Root-Volume lautet:
/dev/debian-vg/root
Dann können wir den gesamten noch freien Speicherplatz der Volume Group zuweisen:
lvextend -l +100%FREE /dev/debian-vg/root
Alternativ lässt sich die Dateisystemerweiterung bei unterstützten Dateisystemen direkt mit LVM kombinieren:
lvextend -r -l +100%FREE /dev/debian-vg/root
Die Option -r sorgt dafür, dass zusätzlich das Dateisystem angepasst wird.
Die beiden lvextend-Varianten sind Alternativen und dürfen nicht als zwei aufeinanderfolgende Erweiterungsschritte verstanden werden.
Die Gerätenamen müssen selbstverständlich an die tatsächliche LVM-Konfiguration angepasst werden. Bei verschlüsselten LUKS-Volumes ist darüber hinaus die Verschlüsselungsebene zu berücksichtigen.
9. Häufige Fehler und ihre Ursachen
9.1 growpart meldet NOCHANGE
Eine mögliche Meldung lautet:
NOCHANGE: partition 4 could only be grown by ...
Das bedeutet, dass growpart keine ausreichende Erweiterungsmöglichkeit erkannt hat.
Mögliche Ursachen sind:
- Die virtuelle Festplatte wurde noch nicht vergrößert.
- Debian erkennt die neue Festplattengröße nicht.
- Hinter der Partition befindet sich kein zusammenhängender freier Speicherplatz.
- Eine andere Partition blockiert die Erweiterung.
- Die Partition nutzt bereits nahezu den gesamten verfügbaren Platz.
Zur Analyse verwenden wir:
fdisk -l /dev/vda
und:
parted /dev/vda unit GiB print free
9.2 resize2fs meldet „Bad magic number“
Eine mögliche Fehlermeldung lautet:
Bad magic number in super-block
Diese Meldung kann auftreten, wenn auf der angegebenen Partition kein ext2-, ext3- oder ext4-Dateisystem vorhanden ist.
Prüfen lässt sich das mit:
blkid /dev/vda4
Handelt es sich beispielsweise um ein LVM Physical Volume, muss die Erweiterung über LVM erfolgen.
Bei XFS verwenden wir stattdessen xfs_growfs.
9.3 Der Kernel erkennt die neue Partitionstabelle nicht
In bestimmten Situationen kann die Partitionstabelle zwar erfolgreich geändert werden, der Kernel verwendet jedoch weiterhin die ursprünglichen Partitionsinformationen.
Ein Versuch, die Partitionstabelle erneut einzulesen, ist:
partprobe /dev/vda
Bei eingebundenen Partitionen kann dies fehlschlagen.
In solchen Fällen ist ein kontrollierter Neustart häufig der sicherste Weg.
Vor dem Neustart sollte geprüft werden, ob die Partitionstabelle korrekt geschrieben wurde.
9.4 df zeigt weiterhin die alte Größe
Wenn lsblk bereits die neue Partitionsgröße anzeigt, df -h jedoch weiterhin die alte Kapazität meldet, wurde das Dateisystem vermutlich noch nicht erweitert.
Bei ext4 hilft:
resize2fs /dev/vda4
Bei XFS verwenden wir den entsprechenden Einhängepunkt:
xfs_growfs /
Bei LVM muss zusätzlich überprüft werden, ob das Logical Volume bereits vergrößert wurde.
10. Sicherheit und Backup vor der Erweiterung
Auch wenn eine Online-Erweiterung normalerweise zuverlässig funktioniert, sollten produktive Systeme entsprechend vorbereitet werden.
10.1 Backup erstellen
Vor Änderungen an der Partitionstabelle sollte ein vollständiges und möglichst überprüftes Backup vorhanden sein.
Bei virtuellen Maschinen kann zusätzlich ein Snapshot hilfreich sein.
Ein Snapshot ersetzt allerdings kein unabhängiges Backup.
10.2 Partitionstabelle sichern
Die Partitionstabelle lässt sich beispielsweise mit sfdisk sichern:
sfdisk --dump /dev/vda > /root/vda-partition-backup.txt
Damit werden die Partitionsinformationen in einer Textdatei gespeichert.
Diese Sicherung ersetzt kein Backup der enthaltenen Daten. Sie sollte außerdem außerhalb der betroffenen virtuellen Festplatte aufbewahrt werden.
10.3 Ausreichend freien Speicherplatz prüfen
Vor einer Erweiterung empfiehlt sich die Kontrolle der aktuellen Speicherauslastung:
df -h
Zusätzlich lassen sich die größten Verzeichnisse untersuchen:
du -xhd1 / 2>/dev/null
Damit erkennen wir, welche Verzeichnisse besonders viel Speicherplatz beanspruchen.
Gegebenenfalls lässt sich durch die Bereinigung alter Logdateien oder nicht mehr benötigter Daten bereits kurzfristig Speicherplatz gewinnen.
11. Praxisbeispiel: /dev/vda4 von 43 GB auf 93 GB erweitern
Fassen wir den typischen Ablauf für einen Debian-Server mit direkt auf /dev/vda4 liegendem ext4-Dateisystem zusammen.
Unsere Ausgangssituation:
- Virtuelle Festplatte:
/dev/vda - Festplattengröße: 100 GB
- Root-Partition:
/dev/vda4 - Bisherige Partitionsgröße: 43 GB
- Dateisystem: ext4
- Freier Speicherplatz unmittelbar hinter der Partition vorhanden
Nach Prüfung der Voraussetzungen und Erstellung eines Backups führen wir folgende Befehle aus.
Schritt 1: Werkzeuge installieren
apt update apt install cloud-guest-utils
Schritt 2: Partitionserweiterung simulieren
growpart -N /dev/vda 4
Schritt 3: Partition erweitern
growpart /dev/vda 4
Schritt 4: Neue Partitionsgröße prüfen
lsblk
Schritt 5: ext4-Dateisystem erweitern
Nur wenn der Kernel bereits die neue Partitionsgröße erkennt:
resize2fs /dev/vda4
Schritt 6: Ergebnis kontrollieren
df -Th
Damit ist die Erweiterung abgeschlossen.
In vielen Fällen ist dafür kein Neustart notwendig.
12. Partitionen regelmäßig überwachen
Eine einmalige Erweiterung löst das aktuelle Speicherplatzproblem, verhindert aber nicht, dass die Partition irgendwann erneut voll läuft.
Deshalb sollten produktive Debian-Server regelmäßig überwacht werden.
Geeignete Monitoring-Systeme sind beispielsweise:
- Zabbix: Überwachung von Dateisystemauslastung, freien Kapazitäten und Trends.
- Prometheus mit Node Exporter: Erfassung und Auswertung von Linux-Systemmetriken.
- Beszel: Ressourcenmonitoring mit übersichtlicher Weboberfläche.
- Netdata: Detaillierte Echtzeitüberwachung von Systemressourcen.
Besonders sinnvoll sind Warnschwellen, die Administratoren frühzeitig über knappen Speicherplatz informieren.
Zusätzlich sollten nicht nur prozentuale Auslastungen, sondern auch die absolut verbleibenden Kapazitäten berücksichtigt werden.
Eine Partition mit 90 Prozent Auslastung kann bei einer Größe von mehreren Terabyte noch ausreichend Reserven besitzen, während eine kleine Root-Partition bereits kritisch knapp werden kann.
Fazit
Die Erweiterung einer Partition unter Debian ist in vielen Fällen deutlich unkomplizierter, als es zunächst erscheint.
Gerade bei virtualisierten Systemen unter Proxmox VE oder KVM lassen sich zusätzliche Speicherkapazitäten häufig ohne Neuinstallation und ohne längere Unterbrechungen bereitstellen.
Entscheidend ist jedoch, die verschiedenen Ebenen korrekt zu unterscheiden.
Die virtuelle Festplatte muss zunächst die zusätzliche Kapazität bereitstellen. Anschließend wird die Partition erweitert und schließlich das Dateisystem angepasst.
Für klassische ext4-Installationen reicht häufig die Kombination aus growpart und resize2fs.
Bei XFS kommt xfs_growfs zum Einsatz, während LVM zusätzliche Schritte wie pvresize und lvextend erforderlich macht.
Wer vor der Erweiterung die Partitionstabelle kontrolliert, ein Backup erstellt und das verwendete Dateisystem eindeutig identifiziert, kann viele typische Fehler vermeiden.
Die wichtigste Erkenntnis: Eine vergrößerte virtuelle Festplatte bedeutet nicht automatisch mehr verfügbaren Speicherplatz innerhalb von Debian. Erst wenn Partition und Dateisystem erfolgreich erweitert wurden, steht die zusätzliche Kapazität tatsächlich zur Verfügung.