Disklabel

Aus Foxwiki

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(2) 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.

WARNUNG ZUM DOS-MODUS UND DOS 6.x

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(8) 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(8).