Linux Administration

Debian: Partition einer virtuellen Festplatte im laufenden Betrieb vergrößern

Virtuelle Festplatte erweitert, aber Debian zeigt weiterhin zu wenig Speicherplatz? Diese Schritt-für-Schritt-Anleitung erklärt, wie du Partitionen unter Debian mit growpart, resize2fs, XFS und LVM sicher vergrößerst – häufig sogar ohne Neustart.

11 min Lesezeit
Grafik: Debian-Partition erweitern - So funktioniert's

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:

  1. Virtuelle Festplatte: Das vom Hypervisor bereitgestellte Blockgerät, beispielsweise /dev/vda.
  2. Partition: Ein abgegrenzter Bereich auf der Festplatte, beispielsweise /dev/vda4.
  3. 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:

  1. Die entsprechende virtuelle Maschine auswählen.
  2. Den Bereich Hardware öffnen.
  3. Die betreffende virtuelle Festplatte auswählen.
  4. Die Funktion Disk Action → Resize aufrufen.
  5. Die gewünschte zusätzliche Kapazität eintragen.
  6. 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/vda bezeichnet die gesamte Festplatte.
  • 4 bezeichnet 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.