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.
| Merkmal | GPT | MBR/msdos |
|---|---|---|
| Typische Firmware | UEFI | Ältere BIOS-Systeme, teilweise auch Kompatibilitätsmodi |
| Partitionsanzahl | Keine Beschränkung durch das MBR-Modell; die konkrete Grenze hängt von Betriebssystem und Implementierung ab | Typischerweise höchstens vier primäre Einträge |
| Große Datenträger | Gut geeignet | Technische Größenbeschränkungen |
| Erweiterte und logische Partitionen | Nicht vorhanden und nicht erforderlich | Erweiterte Partitionen können logische Partitionen enthalten |
| Boot-relevante Kennzeichnung | esp für eine EFI-Systempartition | boot im Kontext klassischer MBR-Bootvorgänge |
| Typischer heutiger Einsatz | Moderne Linux-Installationen und große Laufwerke | Kompatibilitä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 -fErgänzend zeigen blkid, fdisk -l oder parted -l Dateisysteme, UUIDs, Größen und Partitionstabellen:
sudo blkid
sudo fdisk -l
sudo parted -lTypische Gerätenamen unterscheiden sich je nach Hardware:
| Gerätetyp | Datenträgerbeispiel | Partitionsbeispiel | Besonderheit |
|---|---|---|---|
| SATA, SCSI oder USB | /dev/sda | /dev/sda1 | Die Partitionsnummer folgt direkt auf den Gerätenamen. |
| NVMe | /dev/nvme0n1 | /dev/nvme0n1p1 | Das zusätzliche p trennt Gerätenamen und Partitionsnummer. |
| eMMC oder SD | /dev/mmcblk0 | /dev/mmcblk0p1 | Auch 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/sdaFür ein NVMe-Gerät lautet der Aufruf beispielsweise:
sudo parted /dev/nvme0n1Danach erscheint eine Eingabeaufforderung wie (parted). Befehle werden dort ohne den vorangestellten Gerätenamen eingegeben:
(parted) print
(parted) print free
(parted) quitMit select kann innerhalb einer Sitzung ein anderes Gerät ausgewählt werden:
(parted) select /dev/sdbMit 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) printEine typische Ausgabe enthält unter anderem:
- Partition Table: zum Beispiel
gptodermsdos. - Number: die Partitionsnummer für Befehle wie
rmoderset. - Start und End: die Grenzen der Partition.
- File system: eine erkannte Dateisystemsignatur, nicht automatisch ein Formatierungsvorgang.
- Flags: Kennzeichnungen wie
bootoderesp.
Mit print free werden zusätzlich nicht zugeordnete Bereiche angezeigt:
(parted) print freeFür nachvollziehbare Größen und ausgerichtete Grenzen kann die Einheit geändert werden:
(parted) unit MiBMiB 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
| Befehl | Zweck | Typischer Einsatz | Risiko oder Hinweis |
|---|---|---|---|
print | Partitionstabelle anzeigen | Gerät und Partitionen prüfen | Lesender Befehl |
print free | Freie Bereiche anzeigen | Unpartitionierten Speicher finden | Lesender Befehl |
mklabel | Partitionstabelle erstellen | mklabel gpt oder mklabel msdos | Ersetzt die bisherige Partitionsstruktur |
mkpart | Partition anlegen | Start und Ende mit MiB oder GiB festlegen | Falsche Grenzen können vorhandene Datenbereiche überdecken |
rm | Partition löschen | rm 3 | Partitionsdaten werden entfernt; vorher Nummer kontrollieren |
name | Partitionsnamen ändern | name 1 Daten | Unterstützung hängt vom Partitionstabellentyp ab |
set | Flag setzen oder entfernen | set 1 esp on | Flag ist kein Dateisystem und installiert keinen Bootloader |
resizepart | Partitionsende verschieben | Partition vergrößern oder verkleinern | Erhöhtes Risiko; Dateisystem muss separat und passend angepasst werden |
unit | Einheit festlegen | unit MiB | Einheiten konsequent verwenden |
select | Gerät auswählen | select /dev/sdb | Vor schreibenden Befehlen Auswahl erneut prüfen |
quit | Sitzung beenden | Nach der Kontrolle | Bereits ausgeführte Änderungen werden nicht rückgängig gemacht |
Eine neue Partitionstabelle erstellen
Mit mklabel wird eine neue Partitionstabelle angelegt:
(parted) mklabel gptFür eine MBR-Partitionstabelle wird verwendet:
(parted) mklabel msdosBei 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) quitBei 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) printBei 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) quitDie 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/sdb1Partitionen 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 freeDas 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 DatenFlags werden mit set aktiviert oder entfernt:
(parted) set 1 esp on
(parted) set 1 boot on
(parted) set 1 boot offDas 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 200GiBDiese 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:
| Aufgabe | Beispielwerkzeug | Ergebnis |
|---|---|---|
| Partitionstabelle erstellen | parted mklabel gpt | GPT- oder MBR-Struktur auf dem Datenträger |
| Partition erstellen | parted mkpart | Abgegrenzter Blockbereich |
| ext4 formatieren | mkfs.ext4 | Linux-Dateisystem |
| FAT-Dateisystem erstellen | mkfs.vfat -F 32 | FAT32-Dateisystem, etwa für eine EFI-Systempartition |
| Swap initialisieren | mkswap | Partition für Linux-Swap |
| UUID ermitteln | blkid | Eindeutige Kennung und Dateisystemtyp |
| Dateisystem einhängen | mount | Zugriff ü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 -fFür eine Swap-Partition:
sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2Für dauerhafte Einbindung wird meist die UUID in /etc/fstab verwendet. Ein beispielhafter Eintrag lautet:
UUID=<uuid> /mnt/daten ext4 defaults 0 2Ermittle 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/sdbudev 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 printWenn 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 printDer 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 printTypische 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/sdbPrü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
- Backup erstellen und Wiederherstellbarkeit prüfen.
- Zielgerät mit
lsblk -f,blkidund gegebenenfallsparted -lidentifizieren. - Prüfen, ob Partitionen eingehängt, als Swap aktiv oder durch LVM, RAID oder Verschlüsselung verwendet werden.
- Firmware- und Betriebssystemanforderungen klären und GPT oder
msdosauswählen. - Parted mit dem vollständigen Gerätepfad starten.
- Mit
print,print freeundunit MiBden Ausgangszustand kontrollieren. - Schreibende Befehle ausführen und jede Partitionsnummer sowie Grenze prüfen.
- Mit
print,lsblkundblkidvalidieren. - Bei Bedarf
partprobeausführen und udev-Verzögerungen abwarten. - 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
msdosbezeichnet und kennt primäre, erweiterte und logische Partitionen. - GPT besitzt keine erweiterten oder logischen Partitionen.
mklabelersetzt die vorhandene Partitionsstruktur.mkparterstellt eine Partition, aber kein vollständiges Dateisystem.rmlöscht einen Partitionseintrag anhand seiner Partitionsnummer.- Das
esp-Flag, ein FAT-Dateisystem und ein installierter UEFI-Bootloader sind unterschiedliche Dinge. resizepartverändert die Partition, nicht automatisch das Dateisystem.- Nach Änderungen können
partprobeund eine erneute udev-Erkennung erforderlich sein.
Weiterführend: GNU Parted als Referenz für Partitionierung unter Linux.