fdisk
Achtung!
Veränderungen der Partitionierung[1] können das System unbrauchbar machen und sollten nie ohne vorherige Datensicherung durchgeführt werden!
Dieser Artikel gilt größtenteils unabhängig von der Ubuntu-Version.
Dieser Artikel wurde für die Ubuntu-Version Noble Numbat getestet. Es wird erwartet, dass er im wesentlichen auch mit darauf folgenden Versionen anwendbar ist. Bitte melde abweichendes Verhalten in der Diskussion zu diesem Artikel.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
⚓︎ Partitionierung Übersichtsartikel
⚓︎ Datenträger Übersichtsartikel
IBM veröffentlichte 1983 mit PC-DOS 2.0 die erste Version vom FDISK.COM (für fixed disk), einem Programm zur Einrichtung und Verwaltung von Festplatten. Seitdem gibt es für jedes Betriebssystem ein eigenständiges Programm mit dementsprechender und erweiterter Funktionalität, so auch für Linux.
Das Paket fdisk enthält Werkzeuge für die Kommandozeile[5] zur Partitionierung[1] von Datenträgern[2] mit Partitionstabellen diverser Standards. Traditionell unterstützt werden die Formate MBR (auch DOS, MBR/DOS, "MBR (DOS)", Legacy u.a. genannt), Sun, SGI und BSD, aber neuere Versionen von fdisk erlauben auch eine Partitionierung[1] des Datenträgers[2] im modernen Format GPT ("GUID Partition Table") wie mit den Werkzeugen aus dem Paket gdisk.
Für Linux relevant sind nur die Formate "MBR (DOS)" und "GPT". (Fdisk verwendet diese Schreibweisen.)
Eine Alternative zu den Werkzeugen aus den Sammlungen fdisk und gdisk ist GNU Parted.
Installation¶
Das Paket fdisk 🇬🇧 wurde aus dem essenziellen Paket util-linux 🇬🇧 ausgelagert, gehört aber immer noch zum Standardumfang jeder Ubuntu-Installation und bedarf daher in der Regel keiner eigenen Installation.
Das Paket beinhaltet die Werkzeuge:
fdisk – zur interaktiven Nutzung auf der Kommandozeile,
cfdisk – zur interaktiven Nutzung mit halb grafischer Bedienoberfläche, basierend auf ncurses,
sfdisk – zur Verwendung in Skripten.
Die Varianten cfdisk und sfdisk erlauben nicht den vollen Funktionsumfang von fdisk.
fdisk¶
Das Programm fdisk legt Partitionen an, löscht, manipuliert oder listet sie. Wenn man, abgesehen von Standardoperationen wie Anlegen und Löschen von Partitionen, keine Besonderheiten benötigt, ist cfdisk bequemer.
Aufruf¶
Die Ausführung und Benutzung erfolgt im Terminal[5] mit Root-Rechten[6]. Die generelle Aufrufsyntax lautet:
sudo fdisk OPTIONen DEVICE
OPTIONen ist eine möglicherweise leere Liste von Optionen nach Tabelle 1. Wenn hier die Option
-langegeben wird, beendet sich der Befehl nach Ausgabe der Liste, anderenfalls wechselt er in den interaktiven Modus. Im interaktiven Modus können Kommandos gemäß Tabelle 2 per Tastendruck erfolgen.DEVICE identifiziert den zu bearbeitenden Datenträger[2][3][4] über seine immer anzugebende Gerätedatei; hierfür verwendet dieser Artikel immer beispielhaft /dev/sdX.
Eine Erklärung aller Kommandos und Optionen mit ausführlicher Information liefert die Manpage:
man fdisk
Optionen¶
| Tabelle 1: Ausgewählte Optionen | |
| Option | Beschreibung |
-V | Version des Programms anzeigen und beenden. |
-h | Hilfetext anzeigen und Programm beenden. |
-l | Partitionen anzeigen und Programm beenden. |
-x | Wie -l, aber mit weiteren Details. |
-t TYP | TYP als Typ der Partitionierung erzwingen. TYP kann lauten mbr oder gpt oder anders. Vorsicht: Wenn man selbst einen unzutreffenden Typ angibt, kann man damit eine vorhandene gültige Partitionierung zerstören! |
Kommandos¶
Hinweis:
Beim interaktiven Gebrauch werden alle Änderungen zuerst nur im Arbeitsspeicher vorgemerkt:
Das Programm kann jederzeit mit Q verlassen werden, ohne Veränderungen am Datenträger vorzunehmen.
Erst mit dem Kommando W werden alle Informationen unwiderruflich festgeschrieben.
Der Typ einer vorhandenen Partitionierung wird automatisch (empfohlen!) erkannt oder kann beim Aufruf per Option eingestellt werden. Das Menü unterscheidet sich geringfügig abhängig vom Typ der Partitionierung.
Hauptmenü bei MBR¶
| Tabelle 2a: Ausgewählte Kommandos ohne Veränderungen der Partitionierung | |
| Kommando | Beschreibung |
m | Hilfetext mit den zur Verfügung stehenden Kommandos ausgeben. |
p | Die Partitionstabelle ausgeben. |
u | Die Einheit für die Anzeige/Eingabe umschalten. (Sektoren ←→ Zylinder) |
x | Die zweite Menü-Ebene aufrufen: Zusätzliche Funktionen (nur für Experten). Siehe Tabelle 2b |
q | Programms ohne Speichern der Änderungen auf dem Datenträger beenden. |
| Tabelle 2b: Auswahl von Kommandos mit Veränderungen der Partitionierung | |
| Kommando | Beschreibung |
a | (De)Aktivieren des "bootfähig"-Flag einer Partition |
c | (De)Aktivieren des DOS-Kompatibilitätsflags |
d | Eine Partition löschen. Die Nummer der Partition wird abgefragt. |
n | Eine neue Partition anlegen. Nummer und Typ der Partition sowie Anfang und Ende/Größe werden abgefragt. |
o | Neue leere Partitionstabelle des Typs "MBR (DOS)" erstellen. |
g | Neue leere GPT-Partitionstabelle erstellen. |
t | Typ einer Partition ändern. Nummer der Partition und neuer Typ werden abgefragt. |
w | Die Tabelle im Arbeitsspeicher auf den Datenträger schreiben und das Programm beenden. |
Expertenmenü¶
| Tabelle 2c: Auswahl von zusätzlichen Funktionen mit/ohne Veränderungen | |
| Kommando | Beschreibung |
b | Datenanfang einer Partition eines Datenträgers verschieben. |
f | Einträge in Partitionstabelle aufsteigend ordnen. |
r | Zurück zur Menü-Ebene 1 (Hauptmenü) wechseln. |
v | Partitionstabelle überprüfen. |
Partitionierung auflisten¶
Die Anzeige einer Partitionstabelle ist in der Praxis die wichtigste Anwendung des Befehls fdisk.
Hinweis:
In allen Befehlen wird als Datenträger /dev/sdX genutzt, dieser muss auf die eigenen Belange abgestellt werden!
Auflisten der Informationen zu den Partitionen:
sudo fdisk -l /dev/sdX
Beispielausgabe für einen mit GPT partitionierten USB-Stick mit 16 GB (so beworben, tatsächliche Größe aber nur 15,4 GB):
Festplatte /dev/sdc: 14,34 GiB, 15401484288 Bytes, 30081024 Sektoren Festplattenmodell: SanDisk 3.2Gen1 Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: gpt Festplattenbezeichner: 1C1AD315-042D-427C-A72F-BBFF308CAECB Gerät Anfang Ende Sektoren Größe Typ /dev/sdc1 2048 30015447 30013400 14,3G Microsoft Basisdaten /dev/sdc2 30015448 30080983 65536 32M Microsoft Basisdaten
Ausführliche Liste der Informationen zu den Partitionen:
sudo fdisk -x /dev/sdX
Beispielausgabe für denselben Stick wie vorstehend:
Festplatte /dev/sdc: 14,34 GiB, 15401484288 Bytes, 30081024 Sektoren Festplattenmodell: SanDisk 3.2Gen1 Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: gpt Festplattenbezeichner: 1C1AD315-042D-427C-A72F-BBFF308CAECB Erster nutzbarer LBA: 34 Letzter nutzbarer LBA: 30080990 Alternative LBA: 30081023 Partition entries starting LBA: 2 Zugeordnete Partitionseinträge: 128 Partition entries ending LBA: 33 Gerät Anfang Ende Sektoren Typ-UUID UUID Name Attr. /dev/sdc1 2048 30015447 30013400 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 F4B863C7-39A1-41E7-A13A-D2974A8658CA Ventoy /dev/sdc2 30015448 30080983 65536 EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 B423B518-C6D6-495D-9364-5D3399E4FE81 VTOYEFI RequiredPartition GUID:62,63
Beispielausgabe für einen mit "MBR (DOS)" partitionierten USB-Stick mit 32 GB (so beworben, tatsächliche Größe aber nur 31,9 GB):Festplatte /dev/sdc: 29,69 GiB, 31876710400 Bytes, 62259200 Sektoren Festplattenmodell: Alu Line Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: dos Festplattenbezeichner: 0xf71d721a Gerät Boot Anfang Ende Sektoren Kn Typ Start-C/H/S Ende-C/H/S Attr. /dev/sdc1 * 2048 62193663 62191616 7 HPFS/NTFS/exFAT 4/4/1 1023/254/2 80 /dev/sdc2 62193664 62259199 65536 ef EFI (FAT-12/16/32) 1023/254/2 1023/254/2
cfdisk¶
Das Programm cfdisk kommt mit einer via ncurses realisierten Textoberfläche. Es ist interaktiv, selbsterklärend und stellt die wichtigsten Aufgaben über eine Menüsteuerung bereit. Einfache Routine-Aufgaben wie Anlegen und Löschen ganzer Partitionen erledigt man daher bequemer mit cfdisk anstelle von fdisk.
Aufruf:
sudo cfdisk OPTIONen DEVICE
OPTIONen ist auch hier eine möglicherweise leere Liste von Optionen nach folgender Tabelle 3.
DEVICE identifiziert den zu bearbeitenden Datenträger wie beim Aufruf von fdisk.
| Tabelle 3: Ausgewählte Optionen beim Start von cfdisk | |
| Option | Beschreibung |
-V | Version des Programms anzeigen und beenden. |
-h | Hilfetext anzeigen und Programm beenden. |
-r | Programm im nur-Lesen-Modus starten. |
-z | Vorhandene Partitionstabelle ignorieren und mit leerer („ausgenullter“) Tabelle im Arbeitsspeicher beginnen. |
Die Steuerung erfolgt über
den Pfeiltasten ↑ und ↓ zur Auswahl der zu bearbeitenden Partition oder freien Bereiches,
den Pfeiltasten ← und → zur Auswahl der auszuführenden Aktion,
und der Eingabetaste ⏎ zur Auslösung der gewählten Aktion auf dem gewählten Bereich.
Auch cfdisk bearbeitet zunächst wie fdisk nur eine Kopie der Partitionstabelle im Arbeitsspeicher und schreibt diese erst mit Ausführen der Aktion Schreiben auf den Datenträger. Vorsichtige Leute verwenden trotzdem die Option -r, wenn nur eine Besichtigung der Partitionstabelle erfolgen soll.
Weitere Erklärungen und ausführliche Information liefert die Manpage:
man cfdisk
sfdisk¶
Das Programm sfdisk ist für Skripte vorgesehen. Es wird komplett über mitgegebene Optionen, Befehle und Eingabedaten von stdin gesteuert. Für interaktive Bedienung eignet es sich schlechter als cfdisk und fdisk.
Achtung!
Das Programm sfdisk arbeitet anders als seine Schwestern fdisk und cfdisk:
Während die beiden anderen Programme die Partitionstabelle auf dem Datenträger erst überschreiben, wenn man es selbst per Befehl erlaubt/anfordert, schreibt sfdisk bei jedem Aufruf Änderungen direkt auf den Datenträger, sofern man es nicht beim Aufruf mit der Option
--no-actverbietet.Bei falschem Einsatz wird der Datenträger evtl. unbenutzbar. Der Einsatz in Skripten sollte gut überlegt werden.
Syntax¶
Üblicherweise benutzt man das Programm sfdisk als root, entweder in einem Terminal[5] mit einer Root-Shell[6] oder in einem Skript, welches unter dem Benutzer root ausgeführt wird.
Ein typischer Aufruf sieht beispielsweise so aus:
sfdisk OPTIONen DEVICE <SFDISK–SKRIPT
cat SFDISK–SKRIPT | sfdisk OPTIONen DEVICE
Die Eingabeumleitung bzw. Pipe kann in manchen Fällen entfallen.
OPTIONen ist eine Liste von Optionen und Befehlen gemäß folgender Tabelle 4.
DEVICE identifiziert den zu bearbeitenden Datenträger wie beim Aufruf von fdisk.
Weitere Erklärungen mit ausführlicher Information liefert die Manpage:
man sfdisk
Optionen¶
| Tabelle 4: Auswahl Optionen und Befehle für sfdisk | |
| Option | Beschreibung |
-v | Version des Programms anzeigen und beenden. |
-h | Hilfetext anzeigen und Programm beenden. |
-l | Partitionen anzeigen und Programm beenden. |
-n | (no-act) Alles bis auf den tatsächlichen Schreibvorgang auf den Datenträger ausführen. |
-d | (--dump) Komplette Partitionstabelle als Klartext auf stdout ausgeben. Die Ausgabe kann später wieder von sfdisk eingelesen und angewendet werden. |
-T | Bekannte Schemata zu Partitionierung (ID) und deren Bezeichnung (Name) auflisten. |
--no-reread | Vor Schreiben der Partitionstabelle nicht überprüfen, ob das Gerät benutzt wird. Die Angabe dieser Option ist normalerweise eine schlechte Idee! |
--force | Jegliche Konsistenzprüfungen vor Schreiben der Partitionstabelle abschalten. Die Angabe dieser Option ist normalerweise eine extrem schlechte Idee! |
Beispiele¶
Hinweis:
In den Beispielen wird als Datenträger /dev/sdX genutzt, dieser muss auf die eigenen Belange abgestellt werden!
Partitionstabelle anzeigen¶
Listen der Partitionstabelle:
sudo sfdisk -l /dev/sdX
Das ergibt dieselbe Ausgabe wie die entsprechende von fdisk.
Partitionstabelle sichern¶
In vielen Anweisungen wird zur Sicherung einer Partitionstabelle das Programm dd vorgeschlagen. Dies ist mit Vorsicht anzuwenden, da dabei oft nur Teile gesichert werden und beispielsweise bei MBR die Einträge zu den logischen Laufwerken in der erweiterten Partition fehlen. Beim Einsatz von MBR mit einer erweiterten Partition ist sfdisk zum Sichern und Rückspielen der einfachste und schnellste Weg, um die Datenintegrität zu gewährleisten. Das Programm funktioiert aber auch mit GPT.
Quelle: Partitionstabelle des Datenträgers /dev/sdX
Ausgabe: Backup_sdX im eigenen Benutzerverzeichnis (HOME)
sudo sfdisk -d /dev/sdX >${HOME}/Backup_sdX ▶ Im Artikel Skripte/Partitionstabellen sichern findet man ein Skript zum Sichern aller Partitionstabellen der Typen "MBR (DOS)" und GPT.
Partitionstabelle zurückladen¶
Eingabe: Backup_sdX aus dem Verzeichnis /backup (Das ist ein Skript für sfdisk.)
Ziel: Partitionstabelle des Datenträgers /dev/sdX
sudo sfdisk --no-act /dev/sdX </backup/Backup_sdX
Dies simuliert ein Zurückladen der gespeicherten Partitionstabelle und zeigt ein Verlaufsprotokoll an, welches man sorgfältig prüfen sollte.
Achtung!
Beachte dabei: Die im Skript gespeicherte, damals gültige Gerätebezeichnung kann jetzt ganz anders lauten!
Wenn man die Anwendung des Skripts wirklich wünscht, wiederholt man den Befehl ohne die Option --no-act.
Problembehebung¶
Das Programm fdisk zeigt zuweilen beim Start diese Warnung an, möglicherweise sogar in roter Schrift:
This disk is currently in use - repartitioning is probably a bad idea. It's recommended to umount all file systems, and swapoff all swap partitions on this disk.
Die Warnung besagt, dass eine Bearbeitung von in das Dateisystem eingebundenen Partitionen eine ganz schlechte Idee ist, weil so etwas fast unvermeidlich zum Datenverlust führt. Wenn man diese Warnung sieht, sollte man daher, spätestens nach einer Abfrage der vorhandenen Partitionen, unverzüglich das Programm mit der Taste Q beenden und dann die Partitionen auf der Kommandozeile[3] manuell aushängen:
umount /dev/sdX1
Dieser Befehl ist für alle Partitionen zu wiederholen. Man benutze nicht die GUI für das Aushängen bzw. Auswerfen, dann dabei wird oft auch die noch benötigte Gerätedatei /dev/sdX entfernt.
Links¶
Partitionstabelle - Übersichtsartikel
Master-Boot-Record - (MBR) Legacy-MBR
GUID Partition Table - (GPT) incl. Protectiv-MBR