VMware ESXi and vSphere Cluster Management

GNU Parted: Festplatten und Partitionstabellen unter Linux verwalten

Lerne GNU Parted kennen: Datenträger prüfen, GPT oder MBR erstellen, Partitionen anlegen, löschen und Flags setzen – sicher und praxisnah.

GNU Parted ist ein Kommandozeilenprogramm zur Verwaltung von Partitionstabellen und Partitionen unter Linux. Es kann interaktiv in einer eigenen Eingabeaufforderung oder nicht-interaktiv in Shell-Skripten verwendet werden.

Partitionierung ist eine administrative Operation mit hohem Risiko: Das Erstellen, Löschen, Verschieben oder Verkleinern von Partitionen kann Daten unzugänglich machen oder zerstören. Arbeite nur mit einem aktuellen Backup und kontrolliere das Zielgerät vor jedem schreibenden Befehl vollständig.

Was verwaltet Parted?

Für eine sichere Arbeit müssen vier Begriffe unterschieden werden:

  • Datenträger: Das physische Gerät, zum Beispiel eine SATA-SSD, ein NVMe-Laufwerk oder eine SD-Karte.
  • Partitionstabelle: Eine Struktur auf dem Datenträger, die Position, Größe und Eigenschaften der Partitionen beschreibt.
  • Partition: Ein abgegrenzter Bereich des Datenträgers, den das Betriebssystem als eigenes Blockgerät behandelt.
  • Dateisystem: Eine Datenstruktur innerhalb einer Partition, etwa ext4, XFS oder FAT32, die Dateien und Verzeichnisse organisiert.

Parted bearbeitet hauptsächlich die Partitionstabelle und die Grenzen von Partitionen. Es erstellt nicht automatisch den vollständigen Inhalt eines Dateisystems. Nach der Partitionierung muss ein passendes Dateisystem mit einem separaten Werkzeug angelegt werden.

GPT und MBR im Vergleich

GPT bedeutet GUID Partition Table. GPT ist der moderne Standard, eignet sich für große Datenträger und wird typischerweise mit UEFI-Systemen verwendet. Die korrekte Schreibweise lautet GPT, nicht GTP.

MBR wird von Parted häufig als msdos bezeichnet. Dieser ältere Partitionstabellentyp hat unter anderem das Modell aus maximal vier primären Partitionseinträgen. Eine dieser Einträge kann eine erweiterte Partition beschreiben, in der sich logische Partitionen befinden.

MerkmalGPTMBR/msdos
Typische FirmwareUEFIÄltere BIOS-Systeme, teilweise auch Kompatibilitätsmodi
PartitionsanzahlKeine Beschränkung durch das MBR-Modell; die konkrete Grenze hängt von Betriebssystem und Implementierung abTypischerweise höchstens vier primäre Einträge
Große DatenträgerGut geeignetTechnische Größenbeschränkungen
Erweiterte und logische PartitionenNicht vorhanden und nicht erforderlichErweiterte Partitionen können logische Partitionen enthalten
Boot-relevante Kennzeichnungesp für eine EFI-Systempartitionboot im Kontext klassischer MBR-Bootvorgänge
Typischer heutiger EinsatzModerne Linux-Installationen und große LaufwerkeKompatibilität mit älteren Systemen

Je nach Plattform und Parted-Version können außerdem Label-Typen wie apm oder bsd erkannt oder unterstützt werden. Die Wahl zwischen GPT und msdos richtet sich nach Firmware, Betriebssystemanforderungen, Kompatibilität und Datenträgergröße.

GPT und EFI-Systempartition

Bei einer UEFI-Installation wird üblicherweise eine EFI-Systempartition angelegt. Sie enthält Bootdateien, verwendet normalerweise ein FAT-Dateisystem und erhält auf einem GPT-Datenträger das esp-Flag.

Das Flag allein installiert jedoch keinen Bootloader und formatiert die Partition nicht. Partitionstabelle, Partitionsflag, Dateisystem und Bootloader-Installation sind getrennte Schritte.

Vorbereitung: Geräte sicher identifizieren

Liste die Blockgeräte vor jeder Änderung auf:

lsblk -f

Ergänzend zeigen blkid, fdisk -l oder parted -l Dateisysteme, UUIDs, Größen und Partitionstabellen:

sudo blkid
sudo fdisk -l
sudo parted -l

Typische Gerätenamen unterscheiden sich je nach Hardware:

GerätetypDatenträgerbeispielPartitionsbeispielBesonderheit
SATA, SCSI oder USB/dev/sda/dev/sda1Die Partitionsnummer folgt direkt auf den Gerätenamen.
NVMe/dev/nvme0n1/dev/nvme0n1p1Das zusätzliche p trennt Gerätenamen und Partitionsnummer.
eMMC oder SD/dev/mmcblk0/dev/mmcblk0p1Auch hier wird meist ein zusätzliches p verwendet.

Prüfe insbesondere:

  • Modell, Größe und Serieninformationen des Datenträgers.
  • Mountpoints in der Ausgabe von lsblk -f.
  • Aktive Swap-Bereiche.
  • Verwendung durch LVM, RAID, LUKS-Verschlüsselung oder andere Dienste.

Partitionen des laufenden Systemdatenträgers lassen sich nicht immer sicher ändern. Für Änderungen an solchen Datenträgern ist häufig ein Live-System geeigneter. Für administrative Befehle brauchst du meist Root-Rechte, beispielsweise über sudo.

Parted starten und bedienen

Starte Parted mit einem konkreten Datenträger:

sudo parted /dev/sda

Für ein NVMe-Gerät lautet der Aufruf beispielsweise:

sudo parted /dev/nvme0n1

Danach erscheint eine Eingabeaufforderung wie (parted). Befehle werden dort ohne den vorangestellten Gerätenamen eingegeben:

(parted) print
(parted) print free
(parted) quit

Mit select kann innerhalb einer Sitzung ein anderes Gerät ausgewählt werden:

(parted) select /dev/sdb

Mit quit wird Parted beendet. Änderungen werden in der Regel bereits ausgeführt, sobald der jeweilige Befehl bestätigt wurde; quit ist kein zusätzlicher Speichervorgang.

Parted kann vor riskanten Aktionen Warnungen und Rückfragen anzeigen. Lies sie vollständig und prüfe insbesondere den genannten Gerätenamen, die Partitionsnummer und den betroffenen Bereich.

Partitionstabellen und freien Speicher anzeigen

print zeigt den Partitionstabellentyp, die Datenträgergröße, die Partitionen, deren Start- und Endpositionen sowie gesetzte Flags:

(parted) print

Eine typische Ausgabe enthält unter anderem:

  • Partition Table: zum Beispiel gpt oder msdos.
  • Number: die Partitionsnummer für Befehle wie rm oder set.
  • Start und End: die Grenzen der Partition.
  • File system: eine erkannte Dateisystemsignatur, nicht automatisch ein Formatierungsvorgang.
  • Flags: Kennzeichnungen wie boot oder esp.

Mit print free werden zusätzlich nicht zugeordnete Bereiche angezeigt:

(parted) print free

Für nachvollziehbare Größen und ausgerichtete Grenzen kann die Einheit geändert werden:

(parted) unit MiB

MiB und GiB sind binäre Einheiten. Sie sind von dezimalen MB und GB zu unterscheiden. Explizite Angaben wie 1MiB oder 100GiB machen Skripte und manuelle Eingaben besser nachvollziehbar.

Wichtige Parted-Befehle

BefehlZweckTypischer EinsatzRisiko oder Hinweis
printPartitionstabelle anzeigenGerät und Partitionen prüfenLesender Befehl
print freeFreie Bereiche anzeigenUnpartitionierten Speicher findenLesender Befehl
mklabelPartitionstabelle erstellenmklabel gpt oder mklabel msdosErsetzt die bisherige Partitionsstruktur
mkpartPartition anlegenStart und Ende mit MiB oder GiB festlegenFalsche Grenzen können vorhandene Datenbereiche überdecken
rmPartition löschenrm 3Partitionsdaten werden entfernt; vorher Nummer kontrollieren
namePartitionsnamen ändernname 1 DatenUnterstützung hängt vom Partitionstabellentyp ab
setFlag setzen oder entfernenset 1 esp onFlag ist kein Dateisystem und installiert keinen Bootloader
resizepartPartitionsende verschiebenPartition vergrößern oder verkleinernErhöhtes Risiko; Dateisystem muss separat und passend angepasst werden
unitEinheit festlegenunit MiBEinheiten konsequent verwenden
selectGerät auswählenselect /dev/sdbVor schreibenden Befehlen Auswahl erneut prüfen
quitSitzung beendenNach der KontrolleBereits ausgeführte Änderungen werden nicht rückgängig gemacht

Eine neue Partitionstabelle erstellen

Mit mklabel wird eine neue Partitionstabelle angelegt:

(parted) mklabel gpt

Für eine MBR-Partitionstabelle wird verwendet:

(parted) mklabel msdos

Bei MBR gibt es primäre, erweiterte und logische Partitionen. Eine erweiterte Partition ist ein Container für logische Partitionen. Dieses Modell gehört ausschließlich zu MBR beziehungsweise msdos; bei GPT gibt es keine erweiterten Partitionen.

Neue Partitionen anlegen

Mit mkpart werden Partitionsname, optionaler Typ sowie Start- und Endposition angegeben. Ein einfaches GPT-Beispiel für eine Linux-Datenpartition:

sudo parted /dev/sdb
(parted) mklabel gpt
(parted) unit MiB
(parted) mkpart Daten ext4 1MiB 100GiB
(parted) print
(parted) quit

Bei modernen Laufwerken sollten Start- und Endpositionen auf sinnvollen MiB-Grenzen liegen. Eine gute Ausrichtung passt Partitionsgrenzen an Speicherblöcke und interne Verwaltungsstrukturen von SSDs und anderen Laufwerken an. Das verbessert Kompatibilität und kann unnötige Schreib- oder Leseoperationen vermeiden.

Der Dateisystemtyp in einem mkpart-Befehl beschreibt die vorgesehene Verwendung beziehungsweise kann eine entsprechende Kennzeichnung beeinflussen. Das vollständige Dateisystem wird dadurch nicht erzeugt.

Bei MBR kann ein Befehl beispielsweise eine primäre Partition anlegen:

(parted) mklabel msdos
(parted) mkpart primary ext4 1MiB 20GiB
(parted) print

Bei GPT werden normale Partitionen erstellt; die MBR-Begriffe „primär“ und „logisch“ sind dort nicht das passende Modell.

EFI-Systempartition anlegen

Eine EFI-Systempartition kann auf einem GPT-Datenträger beispielsweise so vorbereitet werden:

sudo parted /dev/sdb
(parted) mklabel gpt
(parted) unit MiB
(parted) mkpart EFI 1MiB 513MiB
(parted) set 1 esp on
(parted) print
(parted) quit

Die konkrete Größe richtet sich nach Betriebssystem und Installationskonzept. Nach Parted wird die Partition mit einem FAT-Dateisystem formatiert:

sudo mkfs.vfat -F 32 /dev/sdb1

Partitionen löschen, benennen und mit Flags versehen

Vor dem Löschen muss die Partitionsnummer mit print überprüft werden. Anschließend löscht rm die Partition:

(parted) print
(parted) rm 3
(parted) print free

Das Entfernen des Partitionseintrags ist praktisch nicht rückgängig zu machen. Es löscht nicht zwingend sofort jeden Datenblock, macht den bisherigen Bereich aber für das Betriebssystem unzugänglich und kann spätere Wiederherstellung erschweren.

Ein Partitionsname kann, sofern der Partitionstabellentyp dies unterstützt, geändert werden:

(parted) name 1 Daten

Flags werden mit set aktiviert oder entfernt:

(parted) set 1 esp on
(parted) set 1 boot on
(parted) set 1 boot off

Das boot-Flag wird vor allem im Zusammenhang mit klassischen MBR-Bootvorgängen verwendet. Das esp-Flag kennzeichnet eine EFI-Systempartition auf GPT. Ein Flag ersetzt weder das Dateisystem noch die Installation eines Bootloaders.

Partitionen mit resizepart vergrößern oder verkleinern

resizepart verändert die Partitionsgrenze, nicht automatisch die Größe des Dateisystems:

(parted) resizepart 1 200GiB

Diese Operation ist riskant. Vorher sind ein vollständiges Backup und eine genaue Prüfung der Dateisystemunterstützung erforderlich. Bei einer Vergrößerung müssen Partition und Dateisystem passend erweitert werden. Bei einer Verkleinerung muss das Dateisystem normalerweise zuerst verkleinert werden; anschließend wird die Partition angepasst. Eine falsche Reihenfolge oder ein zu kleines Partitionsende kann Daten zerstören.

Die konkreten Schritte hängen vom Dateisystem ab. Führe keine Verkleinerung durch, wenn das Dateisystem diese Operation nicht unterstützt, und arbeite bei Bedarf offline aus einem Live-System.

Dateisysteme nach der Partitionierung

Die Aufgaben lassen sich klar trennen:

AufgabeBeispielwerkzeugErgebnis
Partitionstabelle erstellenparted mklabel gptGPT- oder MBR-Struktur auf dem Datenträger
Partition erstellenparted mkpartAbgegrenzter Blockbereich
ext4 formatierenmkfs.ext4Linux-Dateisystem
FAT-Dateisystem erstellenmkfs.vfat -F 32FAT32-Dateisystem, etwa für eine EFI-Systempartition
Swap initialisierenmkswapPartition für Linux-Swap
UUID ermittelnblkidEindeutige Kennung und Dateisystemtyp
Dateisystem einhängenmountZugriff über einen Mountpoint

Parted kann Dateisystemsignaturen erkennen oder bei der Partitionserstellung eine erwartete Verwendung annehmen. Das ist nicht mit dem Formatieren gleichzusetzen.

Häufige Dateisysteme sind ext2, ext3 und ext4 für Linux, XFS und Btrfs für verschiedene Linux-Einsatzbereiche, FAT16 und FAT32 für breite Kompatibilität sowie NTFS für Windows-Kompatibilität. Swap ist kein gewöhnliches Dateisystem zur Ablage von Dateien, sondern ein Bereich für ausgelagerte Speicherseiten.

Beispiel für eine Linux-Datenpartition:

sudo mkfs.ext4 /dev/sdb1
sudo blkid /dev/sdb1
sudo mkdir -p /mnt/daten
sudo mount /dev/sdb1 /mnt/daten
lsblk -f

Für eine Swap-Partition:

sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2

Für dauerhafte Einbindung wird meist die UUID in /etc/fstab verwendet. Ein beispielhafter Eintrag lautet:

UUID=<uuid> /mnt/daten ext4 defaults 0 2

Ermittle die tatsächliche UUID mit blkid, teste den Eintrag sorgfältig und verwende niemals blind den Platzhalter.

Kernel und udev nach Änderungen aktualisieren

Nach einer Änderung muss der Kernel die neue Partitionstabelle eventuell erneut einlesen:

sudo partprobe /dev/sdb

udev ist das Linux-System zur dynamischen Geräteerkennung. Nach einer Änderung kann die Erstellung neuer Gerätepfade kurz verzögert sein. Prüfe danach erneut:

lsblk -f
sudo blkid
sudo parted /dev/sdb print

Wenn Partitionen eingehängt oder anderweitig in Gebrauch sind, kann das erneute Einlesen fehlschlagen. Aushängen, gegebenenfalls swapoff, das Beenden nutzender Dienste oder ein Neustart in ein Live-System können erforderlich sein.

Nicht-interaktive Nutzung und Automatisierung

Ein einzelner Parted-Befehl kann direkt aus der Shell ausgeführt werden:

sudo parted -s /dev/sdb unit MiB print

Der Parameter -s steht für den Script-Modus und unterdrückt interaktive Rückfragen. Schreibende Aktionen können ebenfalls kombiniert werden, müssen aber besonders sorgfältig geprüft werden:

sudo parted -s /dev/sdb mklabel gpt
sudo parted -s /dev/sdb unit MiB mkpart Daten ext4 1MiB 100GiB
sudo parted -s /dev/sdb unit MiB print

Typische Probleme und Lösungen

Das falsche Laufwerk könnte bearbeitet werden

Bei mehreren ähnlich großen Laufwerken darf die Auswahl nicht auf Gerätenamen wie sda oder sdb beruhen. Vergleiche mit lsblk -f Modell, Größe, Dateisysteme und Mountpoints. Erkenne Systempartitionen und aktive Swap-Bereiche und kontrolliere das vollständige Zielgerät unmittelbar vor jedem schreibenden Befehl.

Der Kernel meldet, dass das Gerät in Benutzung ist

Hänge betroffene Partitionen aus und deaktiviere Swap nur, wenn dies sicher möglich ist:

sudo umount /dev/sdb1
sudo swapoff /dev/sdb2
sudo partprobe /dev/sdb

Prüfe zusätzlich LVM, RAID, Verschlüsselung und laufende Dienste. Für Änderungen am aktiven Systemlaufwerk ist ein Live-System oft die sichere Wahl.

Die neue Partition erscheint nicht unter /dev

Wenn print die Partition zeigt, lsblk aber noch nicht, führe partprobe aus, warte kurz auf udev und wiederhole die Prüfung. Beachte bei NVMe- und MMC-Geräten die Schreibweise mit p, etwa /dev/nvme0n1p1 oder /dev/mmcblk0p1.

UEFI erkennt die EFI-Partition nicht

Kontrolliere, ob der Datenträger GPT verwendet, ob das esp-Flag gesetzt ist und ob die Partition mit FAT formatiert wurde. Die Parted-Konfiguration allein erstellt noch keine UEFI-Bootoption und installiert keinen Bootloader.

Nach resizepart ist das Dateisystem nicht größer

resizepart ändert nur die Partitionsgrenze. Das Dateisystem muss mit einem passenden Werkzeug separat angepasst werden. Sichere die Daten, prüfe die Dateisystemdokumentation und beachte, ob der Vorgang online oder offline erfolgen muss.

MBR-Begriffe werden auf GPT übertragen

Erweiterte und logische Partitionen gehören zum MBR-Modell. GPT verwendet normale Partitionen und benötigt keinen Container für logische Partitionen.

Praktischer Ablauf als Checkliste

  1. Backup erstellen und Wiederherstellbarkeit prüfen.
  2. Zielgerät mit lsblk -f, blkid und gegebenenfalls parted -l identifizieren.
  3. Prüfen, ob Partitionen eingehängt, als Swap aktiv oder durch LVM, RAID oder Verschlüsselung verwendet werden.
  4. Firmware- und Betriebssystemanforderungen klären und GPT oder msdos auswählen.
  5. Parted mit dem vollständigen Gerätepfad starten.
  6. Mit print, print free und unit MiB den Ausgangszustand kontrollieren.
  7. Schreibende Befehle ausführen und jede Partitionsnummer sowie Grenze prüfen.
  8. Mit print, lsblk und blkid validieren.
  9. Bei Bedarf partprobe ausführen und udev-Verzögerungen abwarten.
  10. Das Dateisystem separat erstellen, UUID ermitteln, Mountpoint anlegen und die Einbindung testen.

Prüfungsrelevante Merksätze

  • GPT ist der moderne Partitionstabellentyp für große Datenträger und typische UEFI-Systeme.
  • MBR wird bei Parted als msdos bezeichnet und kennt primäre, erweiterte und logische Partitionen.
  • GPT besitzt keine erweiterten oder logischen Partitionen.
  • mklabel ersetzt die vorhandene Partitionsstruktur.
  • mkpart erstellt eine Partition, aber kein vollständiges Dateisystem.
  • rm löscht einen Partitionseintrag anhand seiner Partitionsnummer.
  • Das esp-Flag, ein FAT-Dateisystem und ein installierter UEFI-Bootloader sind unterschiedliche Dinge.
  • resizepart verändert die Partition, nicht automatisch das Dateisystem.
  • Nach Änderungen können partprobe und eine erneute udev-Erkennung erforderlich sein.

Weiterführend: GNU Parted als Referenz für Partitionierung unter Linux.