BEZEICHNUNG¶
fdisk - manipuliert die Festplatten-Partitionstabelle
ÜBERSICHT¶
fdisk [
-uc] [
-b Sektorgröße] [
-C
Zylinder] [
-H Köpfe] [
-S Sektoren]
Gerät
fdisk -l [
-u] [
Gerät …]
fdisk -s Partition …
fdisk -v
fdisk -h
BESCHREIBUNG¶
fdisk (in der ersten Aufruf-Form) ist ein menügesteuertes Programm
für die Erzeugung und Manipulation von Partitionstabellen. Es kann
DOS-Partitionstabellen und »Disklabel« im Stil von BSD oder SUN
verarbeiten.
fdisk() kann keine GUID-Partitionstabellen (GPTs) bearbeiten und ist
nicht für große Partitionen entworfen. In diesen Fällen
verwenden Sie bitte das fortschrittlichere GNU
parted(8).
fdisk verwendet standardmäßig *nicht* den DOS-kompatiblen Modus
und Zylinder als Maßeinheit in der Anzeige. Das alte DOS-Verhalten (von
dem abgeraten wird) kann mit den Befehlszeilenoptionen »-c=dos« und
»-u=cylinders« aktiviert werden.
Festplatten 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«.)
Linux benötigt mindestens eine Partition, nämlich für sein
Wurzel-Dateisystem (»/«).Es kann Swap-Dateien und/oder
Swap-Partitionen verwenden, aber die Letzteren sind effizienter. Also wird man
normalerweise eine zweite Linux-Partition als Swap-Partition einrichten. Auf
Intel-kompatibler Hardware kann das BIOS, dass das System hochfährt, oft
nur auf die ersten 1024 Zylinder der Festplatte zugreifen. Aus diesem Grund
wird auf Rechnern mit großen Festplatten oft eine dritte, nur wenige MB
große Partition eingerichtet (
/boot). Sie beherbergt den Kernel
und ein paar beim Systemstart erforderliche Hilfsdateien und stellt sicher,
dass diese Informationen dem BIOS zur Verfügung stehen. Aus verschiedenen
Gründen (Sicherheit, einfache Verwaltung und Sicherungen, Tests) werden
zuweilen mehr als die minimale Anzahl von Partitionen verwendet.
GERÄTE¶
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).
DISKLABEL¶
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 Swap-Partition) ihren ersten Sektor auf
Zylinder 0 nutzen, sollten nicht benutzt werden, weil dadurch das Disklabel
beschädigt wird.
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.
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.
Wenn möglich, wird sich
fdisk die Festplattengeometrie automatisch
beschaffen. Dies ist nicht unbedingt die physische Geometrie des
Datenträgers. (Tatsächlich haben moderne Festplatten nicht wirklich
so etwas wie eine physikalische 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 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 Partitition (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.
Vor dem Programmende werden ein sync() und ein ioctl(BLKRRPART)
(Partitionstabelle erneut von der Platte lesen) durchgeführt, wenn die
Partitionstabelle aktualisiert wurde. Vor langer Zeit musste nach der
Verwendung von fdisk neu gestartet werden. Der Verfasser glaubt nicht, dass
der Neustart noch erforderlich ist. Aber ein zu früher Neustart
könnte zum Verlust von noch nicht geschriebenen Daten führen.
Beachten Sie, dass sowohl der Kernel als auch die Hardware der Festplatte
Daten puffern können.
DOS-6.x-WARNUNG¶
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 die 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 cfdisk oder fdisk 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
cfdisk auf einer DOS-Partitionstabelle einen Eintrag für /dev/sda1
erstellt haben, dann würden Sie (nach dem Verlassen von fdisk oder cfdisk
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.
SEIEN SIE BESONDERS VORSICHTIG, wenn Sie den Befehl
dd verwenden,
weil ein kleiner Tippfehler alle Daten auf Ihrer Platte unbrauchbar machen
kann.
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.
OPTIONEN¶
- -b 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.
- -c[=Modus]
- legt den Kompatibilitätsmodus (»dos« oder
»nondos«) fest. Der Standardwert ist »nondos«. Um
Rückwä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 kann, die korrekte Form ist beispielsweise
»-c=dos«.
- -C Zylinder
- gibt die Zylinderzahl der Platte an. Und wozu soll das
jemand verwenden wollen?
- -H Köpfe
- 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 Sektoren
- legt fest, wieviele Sektoren sich auf einer Spur der Platte
befinden. (Natürlich nicht die physikalische Anzahl, sondern die
für Partitionstabellen verwendete). Ein sinnvoller Wert ist 63.
- -h
- Hilfe anzeigen und beenden
- -l
- Partitionstabellen für die angegebenen Geräte
ausgeben und beenden. Wurden keine Geräte angegeben, werden bei
Existenz von /proc/partitions die dort erwähnten Geräte
verwendet.
- -s Partition...
- gibt die Größe (in Blocks) jeder angegebenen
Partition aus.
- -u[=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
Rückwä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«.
- -v
- Versionsnummer von fdisk ausgeben und beenden
FEHLER¶
Es gibt mehrere *fdisk-Programme. Jedes hat spezifische Stärken und
Schwächen. Probieren Sie die Programme in der Reihenfolge
cfdisk,
fdisk und
sfdisk aus. (In der Tat ist
cfdisk ein
schönes Programm, das strenge Anforderungen an die von ihm akzeptierten
Partitionstabellen stellt und hochwertige Partitionstabellen erzeugt.
Verwenden Sie es, wenn Sie können.
fdisk ist ein fehlerhaftes
Programm, dass eigentümliche Dinge tut - in der Regel produziert es
vernünftige Ergebnisse. Sein einziger Vorteil ist, dass es eine gewisse
Unterstützung für BSD-Disklabels und weitere
Nicht-DOS-Partitionstabellen bietet. Vermeiden Sie es, wenn Sie können.
sfdisk ist nur für Hacker - die Benutzeroberfläche ist
schrecklich, aber es arbeitet genauer als fdisk und ist mächtiger als
fdisk und cfdisk. Darüber hinaus kann es nicht interaktiv genutzt
werden.)
Heutzutage gibt es auch
parted. Die Schnittstelle von cfdisk ist
schöner, aber parted kann mehr: Es ändert nicht nur die
Größe von Partionen, sondern auch die der dort eingerichteten
Dateisysteme.
Das IRIX-/SGI-Disklabel wird derzeit nicht vom Kernel unterstützt.
Darüber hinaus werden IRIX-/SGI-Header-Verzeichnisse noch nicht
vollständig unterstützt.
Es fehlt eine Option »Ausgabe der Partitionstabelle in Datei« fehlt.
SIEHE AUCH¶
cfdisk(8),
kpartx(8),
mkfs(8),
parted(8),
partprobe(8),
sfdisk(8)
VERFÜGBARKEIT¶
Der Befehl
fdisk ist Teil des Pakets util-linux und unter
ftp://ftp.kernel.org/pub/linux/utils/util-linux/ verfügbar.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
Schauer <Martin.E.Schauer@gmx.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>.