Arch manual pages

FDISK(8) System-Administration FDISK(8)

fdisk - manipuliert die Festplatten-Partitionstabelle

fdisk [Optionen] Gerät

fdisk -l [Gerät …]

fdisk ist ein menügesteuertes Programm für die Erzeugung und Manipulation von Partitionstabellen. Es kann DOS-Partitionstabellen in den Formaten GPT, MBR, Sun, SGI und BSD verarbeiten.

Blockorientierte Geräte können in eine oder mehrere logische Platten (Partitionen) unterteilt werden. Diese Unterteilung wird in der Partitionstabelle notiert, die sich auf dem Sektor 0 der Platte befindet. (In der BSD-Welt spricht man von »disk slices« und einem »disklabel«.)

In der Voreinstellung werden jegliche Partitionierungsvorgänge durch die E/A-Grenzen (die Topologie) des Gerätes bestimmt. fdisk ist in der Lage, das Platten-Layout für eine 4K-Sektorengröße zu optimieren und den Ausrichtungsversatz auf modernen Geräten für MBR und GPT zu nutzen. Es ist immer eine gute Wahl, den Voreinstellungen von fdisk zum Beispiel im Hinblick auf den jeweils ersten und letzten Sektor einer Partition zu folgen, und die durch die +/-<Größe>{M,G,…}-Notation angegebenen Partitionen werden stets entsprechend den Gegebenheiten des Gerätes ausgerichtet sein.

Beachten Sie, dass partx(8) eine leistungsfähige Schnittstelle für Skripte zum Ausgeben von Platten-Layouts bietet, während fdisk eher für Normalbenutzer entworfen wurde. Abwärtskompatibilität in der Ausgabe von fdisk kann nicht garantiert werden. Die Eingabe (die Befehle) dagegen sollten immer abwärtskompatibel sein.

-b, --sector-size Sektorgröße
gibt die Sektorgröße der Festplatte an. Gültige Werte sind 512, 1024, 2048 oder 4096. (Neuere Kernel kennen die Sektorgröße. Verwenden Sie diese Option nur mit alten Kerneln oder um die Sicht des Kernels außer Kraft zu setzen.) Seit util-linux-2.17 unterscheidet fdisk zwischen logischer und physischer Sektorgröße. Diese Option ändert beide Sektorgrößen auf Sektorgröße.
-B, --protect-boot
verhindert das Löschen des ersten Sektors des Geräts, wenn eine neue Festplattenbezeichnung erzeugt wird. Dieses Funktionsmerkmal wird für GPT und MBR unterstützt.
-c, --compatibility[=Modus]
legt den Kompatibilitätsmodus (»dos« oder »nondos«) fest. Der Standardwert ist »nondos«. Um Abwärtskompatibilität zu gewährleisten, kann die Option ohne Modus-Argument verwendet werden. In diesem Fall wird der Standardwert verwendet. Beachten Sie, dass das optionale Modus-Argument nicht von der -c-Option durch ein Leerzeichen getrennt werden darf, die korrekte Form ist beispielsweise »-c=dos«.
-h, --help
zeigt eine Hilfe an und beendet das Programm.
-L, --color[=WANN]
stellt die Ausgabe farbig dar. Das optionale Argument WANN kann auto, never oder always sein. Falls WANN nicht angegeben ist, ist auto die Voreinstellung. Die Farben können deaktiviert werden. Die jeweilige einkompilierte Voreinstellung zeigt Ihnen die Option --help an. Siehe auch den Abschnitt FARBEN.
-l, --list
gibt Partitionstabellen für die angegebenen Geräte aus und beendet das Programm. Wurden keine Geräte angegeben, werden bei Existenz von /proc/partitions die dort erwähnten Geräte verwendet.
-o, --output Liste
legt die anzuzeigenden Spalten fest. Mit --help erhalten Sie eine Liste aller unterstützten Spalten.

Die voreingestellte Liste der Spalten kann erweitert werden, indem Sie die Liste im Format +Liste angeben (beispielsweise -o +UUID).

-s, --getsz
gibt die Größe jedes der angegebenen blockorientierten Geräte in 512-Byte-Sektoren aus. Diese Option ist veraltet, verwenden Sie stattdessen blockdev(1).
-t, --type Typ
aktiviert die Unterstützung für Plattenbezeichnungen des angegebenen Typs und deaktiviert die Unterstützung für alle anderen Typen.
-u, --units[=Einheit]
legt fest, ob bei der Ausgabe von Partitionstabellen die Größe in »Sektoren« oder Zylindern angegeben wird. Standardmäßig wird die Größe in Sektoren angezeigt. Um Abwärtskompatibilität zu gewährleisten, kann die Option ohne das Einheit-Argument verwendet werden. In diesem Fall wird der Standardwert verwendet. Beachten Sie, dass das optionale Einheit-Argument nicht von der -u-Option durch ein Leerzeichen getrennt werden kann, die korrekte Form ist beispielsweise »-u=cylinders«.

-C, --cylinders Zahl
gibt die Zylinderzahl der Platte an. Und wozu soll das jemand verwenden wollen?
-H, --heads Zahl
legt die Anzahl der Köpfe der Festplatte fest. (Natürlich nicht die physikalische Anzahl, sondern die für Partitionstabellen verwendete). Vernünftige Werte sind 255 und 16.
-S, --sectors Zahl
legt fest, wie viele Sektoren sich auf einer Spur der Platte befinden, allerdings nicht die physikalische Anzahl, sondern die für Partitionstabellen verwendete. Ein sinnvoller Wert ist 63.

-w, --wipe WANN
entfernt Dateisystem, RAID und Partitionstabellensignaturen von dem Gerät, um mögliche Kollisionen zu vermeiden. Das Argument WANN kann auto, never oder always lauten. Wenn diese Option nicht angegeben ist, ist die Vorgabe auto. In diesem Fall werden die Signaturen nur im interaktiven Modus entfernt. In allen Fällen werden erkannte Signaturen durch Warnmeldungen berichtet, bevor eine neue Partitionstabelle erstellt wird. Siehe auch den Befehl wipefs(8).

-W, --wipe-partition WANN
Löscht Dateisystem-, RAID- und Partitionstabellensignaturen von einer new erstellten Partition, um mögliche Kollisionen zu vermeiden. Das Argument WANN kann auto, never oder always lauten. Wenn diese Option nicht angegeben ist, ist die Vorgabe auto. In diesem Fall werden die Signaturen nur im interaktiven Modus und nach Bestätigung durch den Benutzer gelöscht. In allen Fällen werden die erkannten Signaturen durch Warnmeldungen berichtet, bevor eine neue Partition erstellt wird. Siehe auch den Befehl wipefs(8).

-V, --version
zeigt Versionsinformationen an und beendet das Programm.

Das Gerät ist normalerweise /dev/sda, /dev/sdb oder so. Ein Gerätename gilt für die ganze Platte. Alte Systeme ohne libata (eine im Linux-Kernel verwendete Bibliothek für ATA-Controller und -Geräte) unterscheiden zwischen IDE- und SCSI-Platten. Dort ist der Gerätename /dev/hd* (IDE) oder /dev/sd* (SCSI).

Die Partition besteht aus einem Gerätenamen und einer folgenden Partitionsnummer. Beispielsweise ist /dev/sda1 die erste Partition auf der ersten Festplatte des Systems (siehe auch in der Dokumentation des Linux-Kernels die Datei Documentation/devices.txt).

Im »Letzter Sektor«-Dialog können Partitionsgrößen als Anzahl der Sektoren oder in der Notation +/-<Größe>{K,B,M,G,…} angegeben werden.

Wird der Größenangabe ein »+« vorangestellt, so wird diese als Anzahl der Bytes relativ zum ersten Sektor der Partition interpretiert. Falls der Größenangabe ein »-« vorangestellt wird, dann wird sie als relativ zu der Größenbegrenzung (dem letzten verfügbaren Sektor für die Partition) interpretiert.

Falls die Größe in Byte angegeben ist, dann kann eines der multiplikativen Suffixe KiB=1024, MiB=1024*1024 usw. für GiB, TiB, PiB, EiB, ZiB und YiB folgen. Dabei ist »iB« optional, beispielsweise ist »K« gleichbedeutend mit »KiB«.

Die relativen Größenangaben sind stets auf die E/A-Grenzen des Gerätes ausgerichtet. Die Notation +/-<Größe>{K,B,M,G,…} wird daher empfohlen.

Aus Gründen der Abwärtskompatibilität akzeptiert fdisk auch die Suffixe KB=1000, MB=1000*1000 usw. für GB, TB, PB, EB, ZB und YB. Diese Dezimalsuffixe gelten jedoch als veraltet und sollten nicht mehr verwendet werden.

fdisk kann (mit dem Befehl »I«) sfdisk-kompatible Skriptdateien verarbeiten. Das Skript wird auf die im Speicher vorgehaltene Partitionstabelle angewendet, wodurch es möglich ist, die Partitionstabelle vor dem eigentlichen Speichern auf dem Laufwerk zu verändern.

Umgekehrt können Sie mit dem Befehl »O« die im Speicher vorgehaltene Partitionsaufteilung in eine Skriptdatei schreiben.

Die Skriptdateien sind zu cfdisk, sfdisk, fdisk und weiteren libfdisk-Anwendungen kompatibel. Weitere Details finden Sie in sfdisk(8).

GPT (GUID-Partitionstabelle)
GPT ist ein moderner Standard für das Layout der Partitionstabelle. GPT verwendet logische 64-Bit-Blockadressen, Prüfsummen, UUIDs und Namen für Partitionen sowie eine unbegrenzte Anzahl der Partitionen (wobei diese Anzahl in vielen Partitionierungswerkzeugen auf 128 begrenzt ist).

Beachten Sie, dass der erste Sektor gemäß der GPT-Spezifikation stets für einen geschützten MBR reserviert ist. Dies verhindert, dass Partitionierungswerkzeuge, die nur auf den MBR zugreifen, GPT-Festplatten falsch erkennen und überschreiben.

GPT ist stets vor MBR zu bevorzugen, insbesondere auf moderner Hardware mit einem UEFI-Bootloader.

DOS-Typ (MBR)

Eine DOS-Partitionstabelle kann eine unbegrenzte Anzahl von Partitionen enthalten. In Sektor 0 gibt es Raum für die Beschreibung von 4 Partitionen (die als »primäre« bezeichnet werden). Eine von ihnen kann logische Partitionen enthalten und wird erweiterte Partition genannt. Jeder logischen Partition geht eine verkettete Liste von Sektoren voraus. Für die vier primären Partitionen sind unabhängig von deren Existenz die Nummern 1 bis 4 reserviert, die Nummerierung der logischen Partitionen beginnt bei 5.

In einer DOS-Partitionstabelle wird der Startversatz (starting offset) und die Größe der einzelnen Partitionen auf zwei Arten gespeichert: als absolute Anzahl der Sektoren (angegeben in 32 Bit) und als Zylinder/Köpfe/Sektoren-Tripel (CHS, angegeben in 10/8/6 Bit). Ersteres ist in Ordnung - mit 512-Byte-Sektoren funktioniert das bis zu 2 TB. Letzteres hat zwei Probleme. Erstens können die C/H/S-Felder nur dann ausgefüllt werden, wenn die Anzahl der Köpfe und die Anzahl der Sektoren pro Spur bekannt sind. Und zweitens, selbst wenn diese Zahlen bekannt sind, reichen die 24 verfügbaren Bit nicht aus. DOS verwendet C/H/S, Windows beides, Linux verwendet C/H/S nie. Die C/H/S-Adressierung ist veraltet, daher ist es möglich, dass diese in zukünftigen Versionen von fdisk nicht mehr unterstützt wird.

Bitte lesen Sie den Abschnitt zum DOS-Modus, wenn Sie DOS-kompatible Partitionen benötigen. fdisk beachtet in der Voreinstellung keine Zylindergrenzen.

BSD/Sun-Typ

Ein BSD/SUN-Disklabel kann acht Partitionen beschreiben. Die dritte Partition sollte eine Partition beschreiben, die für eine »ganze Platte« steht. Partitionen, die (wie eine Auslagerungspartition) ihren ersten Sektor auf Zylinder 0 nutzen, sollten nicht benutzt werden, weil dadurch das Disklabel beschädigt wird. Beachten Sie, dass ein BSD-Label üblicherweise innerhalb einer DOS-Partition verschachtelt ist.

IRIX/SGI-Typ

Ein IRIX/SGI-Disklabel kann 16 Partitionen beschreiben; die elfte sollte eine vollständige »volume«-Partition sein, während die neunte als »volume header« gekennzeichnet werden sollte. Der Volume Header wird auch die Partitionstabelle umfassen, d. h. er beginnt bei Block Null und erstreckt sich standardmäßig über fünf Zylinder. Der verbleibende Platz im Volume Header kann durch Header-Verzeichniseinträge belegt werden. Es dürfen keine Partitionen mit dem Volume Header überlappen. Legen Sie dort kein Dateisystem an und verändern Sie nicht seinen Typ, weil Sie dadurch die Partitionstabelle verlieren. Verwenden Sie dieses Label nur, wenn Sie mit Linux auf IRIX-/SGI-Maschinen arbeiten oder auf IRIX-/SGI-Festplatten zugreifen.

Die Aufrufe sync() und ioctl(BLKRRPART) werden nach der Aktualisierung der Partitionstabelle ausgeführt (wobei die Partitionstabelle auf der Platte neu eingelesen wird), bevor das Programm beendet wird.

Beachten Sie, dass all dies veraltet ist. Sie müssen sich eigentlich auf modernen Betriebssystemen nicht mit Dingen wie Geometrie und Zylindern befassen. Wenn Sie wirklich DOS-kompatible Partitionierung benötigen, dann müssen Sie den DOS-Modus und Zylinder-Einheiten mit den Befehlszeilenoptionen »-c=dos -u=cylinders« für fdisk aktivieren.

Der FORMAT-Befehl von DOS 6.x sucht im ersten Sektor des Datenbereichs der Partition nach ein paar Informationen und behandelt diese Informationen als zuverlässiger als die Informationen in der Partitionstabelle. Der DOS-FORMAT-Befehl erwartet vom DOS-FDISK-Befehl, dass die ersten 512 Byte des Datenbereichs einer Partition bei jeder Größenänderung gelöscht werden. DOS FORMAT wird dieser zusätzlichen Informationen suchen, auch wenn der /U-Schalter gesetzt ist - die Programmautoren betrachten dies als einen Fehler in DOS FORMAT und DOS FDISK.

Die Quintessenz ist: Wenn Sie mit fdisk oder cfdisk die Größe eines Eintrags in der DOS-Partitionstabelle ändern, dann müssen Sie auch mit dd die ersten 512 Byte der Partition auf Null setzen, bevor Sie mit dem DOS-FORMAT-Befehl die Partition formatieren. Wenn Sie beispielsweise mit fdisk auf einer DOS-Partitionstabelle einen Eintrag für /dev/sda1 erstellt haben, dann würden Sie (nach dem Verlassen von fdisk und dem Neustart von Linux, damit die Informationen in der Partitionstabelle gültig sind) mit dem Befehl »dd if=/dev/zero of=/dev/sda1 bs=512 count=1« die ersten 512 Byte der Partition auf Null setzen.

Wenn möglich, wird fdisk die Festplattengeometrie automatisch ermitteln. Dies ist nicht unbedingt die physische Geometrie des Datenträgers. Tatsächlich haben moderne Festplatten nicht wirklich so etwas wie eine physische Geometrie; sicherlich kann sie nicht in der vereinfachenden CHS-Form beschrieben werden. Aber diese Geometrie wird halt für die MS-DOS-Partitionstabelle verwendet.

In der Regel geht standardmäßig alles gut. Es gibt keine Probleme, wenn Linux das einzige System auf der Festplatte ist. Wenn allerdings der Datenträger mit anderen Betriebssystemen gemeinsam genutzt wird, ist es oft ratsam, ein fdisk eines anderen Betriebssystems mindestens eine Partition anlegen zu lassen. Beim Start liest Linux die Partitionstabelle aus und versucht abzuleiten, welche (fingierte) Geometrie für eine gute Zusammenarbeit mit anderen Systemen erforderlich ist.

Jedesmal, wenn im DOS-Modus eine Partitionstabelle ausgegeben wird, werden die Einträge in der Partitionstabelle auf Konsistenz geprüft. Es wird geprüft, ob die physikalischen und logischen Start- und Endpunkte übereinstimmen und ob jede Partition (mit Ausnahme der ersten) an einer Zylindergrenze startet und endet.

Einige Versionen von MS-DOS erstellen eine erste Partition, die nicht auf einer Zylindergrenze beginnt, sondern auf Sektor 2 des ersten Zylinders. Partitionen, die auf Zylinder 1 anfangen, können nicht auf einer Zylindergrenze beginnen. Wenn Sie nicht auch OS/2 auf Ihrer Maschine installiert haben, werden Sie wahrscheinlich trotzdem keine Schwierigkeiten bekommen.

Um die besten Ergebnisse zur erzielen, sollten Sie ein betriebssystemspezifisches Partitionierungsprogramm einsetzen. Beispielsweise sollten Sie DOS-Partitionen mit dem DOS-FDISK erzeugen und Linux-Partitionen mit den Linux-Programmen fdisk oder cfdisk.

Implizites Einfärben können Sie deaktivieren, indem Sie eine leere Datei /etc/terminal-colors.d/fdisk.disable anlegen.

In terminal-colors.d(5) finden Sie weitere Details zur Konfiguration der Farbdarstellung. Folgende logische Farbnamen werden von fdisk unterstützt:

header
Die Kopfzeilen der ausgegebenen Tabellen.
help-title
Die Titel des Hilfebereichs.
warn
Die Warnmeldungen.
welcome
Die Begrüßungsnachricht.

Karel Zak
Davidlohr Bueso

Die Originalversion wurde von Andries E. Brouwer, A. V. Le Blanc und anderen geschrieben.

FDISK_DEBUG=all
aktiviert die Debug-Ausgabe für fdisk.
LIBFDISK_DEBUG=all
aktiviert die Debug-Ausgabe für libfdisk.
LIBBLKID_DEBUG=all
aktiviert die Debug-Ausgabe für libblkid.
LIBSMARTCOLS_DEBUG=all
aktiviert die Debug-Ausgabe für libsmartcols.
LIBSMARTCOLS_DEBUG_PADDING=on
verwendet sichtbare Auffüllzeichen. Dafür muss LIBSMARTCOLS_DEBUG aktiviert sein.

cfdisk(8), mkfs(8), partx(8), sfdisk(8)

Der Befehl fdisk ist Teil des Pakets util-linux und unter https://www.kernel.org/pub/linux/utils/util-linux/ verfügbar.

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Mario Blättermann <mario.blaettermann@gmail.com>, Dr. Tobias Quathamer <toddy@debian.org> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.

Februar 2016 util-linux