Partitionstabelle
Die Partitionstabelle gibt die Aufteilung einer Festplatte in Partitionen an. Partitionen sind mehrere unabhängig voneinander benutzbare Teile der Festplatte. Auch wenn nur eine Partition eingerichtet ist, ist eine Partitionstabelle im Master Boot Record vorhanden.
Unter den meisten Betriebssystemen auf PCs wird sie mit einem Programm namens fdisk eingerichtet. Es gibt aber auch eine Vielzahl weiterer Programme, um eine Festplatte zu partitionieren.
Aufbau der Partitionstabelle bei IBM-PC-kompatiblen Computern
Auf Festplatten für IBM-PC-kompatible Computer wird üblicherweise der unten beschriebene Aufbau der Partitionstabelle verwendet. Auf zu PC kompatiblen Speichermedien (z. B. Compact Flash-Karten, USB-Stick, Zip-Diskette) ist diese Art von Partitionierung möglich, aber nicht nötig. Auf Speichermedien anderer Systeme (z. B. Workstations, Apple Macintosh, Amiga mit RigidDiskBlock) werden andere Partitionstabellen verwendet, die hier nicht beschrieben werden.
Offset | *0 | *1 | *2 | *3 | *4 | *5 | *6 | *7 | *8 | *9 | *A | *B | *C | *D | *E | *F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | eb | 48 | 90 | 10 | 8e | d0 | bc | 00 | b0 | b8 | 00 | 00 | 8e | d8 | 8e | c0 |
0010 | fb | be | 00 | 7c | bf | 00 | 06 | b9 | 00 | 02 | f3 | a4 | ea | 21 | 06 | 00 |
. . . | ||||||||||||||||
0190 | 61 | 64 | 00 | 20 | 45 | 72 | 72 | 6f | 72 | 00 | bb | 01 | 00 | b4 | 0e | cd |
01a0 | 10 | ac | 3c | 00 | 75 | f4 | c3 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
01b0 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 01 |
01c0 | 01 | 00 | 83 | fe | ff | ff | 3f | 00 | 00 | 00 | 41 | 29 | 54 | 02 | 00 | fe |
01d0 | ff | ff | 82 | fe | ff | ff | 80 | 29 | 54 | 02 | fa | e7 | 1d | 00 | 00 | fe |
01e0 | ff | ff | 83 | fe | ff | ff | 7a | 11 | 72 | 02 | fa | e7 | 1d | 00 | 80 | fe |
01f0 | ff | ff | 05 | fe | ff | ff | 74 | f9 | 8f | 02 | 0c | 83 | 6c | 04 | 55 | aa |
Wie unten erläutert, gibt es primäre und erweiterte Partitionstabellen. Ihr Aufbau ist identisch. Die Tabelle befindet sich an Byte 446 (1BEhex) des jeweiligen Sektors und hat maximal 4 Einträge à 16 Bytes, sie ist also 64 Byte groß. Daran anschließend folgt die Magic Number, die aus den beiden Bytes 55hex und AAhex in den letzten zwei Bytes des Sektors besteht.
Die nebenstehende Tabelle veranschaulicht die Lage der Partitionstabelle (innerhalb des Bootsektors). Die vier Partitionseinträge sind farblich hervorgehoben. Gelb, grün, cyan und blau sind die Einträge für die vier primären Partitionen. Die Signatur ist rot hinterlegt.
Ein solcher Eintrag ist wie folgt gegliedert:
Speicherplatzadresse (Hexadezimal) |
Größe (Bytes) |
Inhalt |
---|---|---|
0x00 | 1 | bestimmt ob Partition gestartet werden kann oder nicht (80hex=bootfähig, 00hex=nicht bootfähig) |
0x01 | 3 | CHS-Eintrag des ersten Sektors |
0x04 | 1 | Typ der Partition (Partitionstyp) |
0x05 | 3 | CHS-Eintrag des letzten Sektors |
0x08 | 4 | Startsektor (relativ zum Anfang der Festplatte, oder zur erweiterten Partitionstabelle) |
0x0C | 4 | Anzahl der Sektoren in der Partition |
Unbenutzte Einträge sind mit Nullen gefüllt.
Die CHS-Einträge sind wie folgt kodiert:
Da bei modernen Festplatten die Adressierung durch CHS (255 Heads × 63 Sektoren × 1024 Zylinder × 512 Bytes = ca. 8 GiB) nicht ausreicht, wird ab dieser Größe immer 254, 63 und 1023 für die CHS-Werte angegeben und Position und Größe werden dann ausschließlich durch die Sektorangaben festgelegt. Somit ergibt sich auch die maximale Größe von 2 TiB für eine Partition und 4 TiB für eine Festplatte (bei 512 Bytes Sektorengröße). ((232−1) × 512 Bytes = ca. 2 TiB)
Ergänzende Erläuterung: die Köpfe und Zylinder werden beginnend bei 0 und die Sektoren beginnend bei 1 gezählt.
Wichtige Partitionstypen mit ihren Kennnummern
Der Eintrag an Offset 0x04 steht u. a. für:
Typbyte (hex) | Bezeichnung |
---|---|
0x00 | leer/unbenutzt |
0x01 | FAT12 (Floppy Disks) |
0x04 | FAT16 ≤ 32 MiB |
0x05 | erweiterte Partition |
0x06 | FAT16 > 32 MiB |
0x07 | NTFS (Windows NT/2000/XP/Vista/7) oder HPFS (OS/2) |
0x0B | FAT32 |
0x0C | FAT32 mit BIOS-Extensions (LBA) |
0x0E | FAT16 > 32 MiB mit BIOS-Extensions (LBA) |
0x0F | erweiterte Partition mit BIOS-Extensions (LBA) |
0x12 | OEM-Partition für Konfiguration, Diagnose, BIOS-Erweiterung (für Microsoft-Betriebssysteme unsichtbar) |
0x42 | Dynamischer Datenträger |
0x82 | Linux Swap / Solaris 2.6 X86 bis Solaris 9 X86 |
0x83 | Linux Native |
0x8E | Linux LVM |
0xA5 | FreeBSD |
0xA6 | OpenBSD |
0xA9 | NetBSD |
- vollständige Liste der TU Eindhoven (englisch)
Primäre + Erweiterte Partitionstabelle
Bei einem am PC partitionierten Medium wird die primäre Partitionstabelle vor der Signatur am Ende des ersten Sektors (Master Boot Record) abgelegt. Die Partitionen in der Partitionstabelle des MBR heißen Primärpartitionen. Eine einzige Partition im MBR kann jedoch auch als erweitert (extended, Typ 5 oder Fhex) markiert sein. Diese verweist dann im Eintrag Startsektor auf die erste erweiterte Partitionstabelle.
Diese befindet sich im ersten Sektor der erweiterten Partition. Jede erweiterte Partitionstabelle definiert genau eine logische Partition und verweist bei Bedarf auf die nächste erweiterte Partitionstabelle. Die erweiterten Partitionstabellen funktionieren nach dem Prinzip der verketteten Liste, daher sind hinter den primären Partitionen beliebig viele logische Partitionen möglich. Als Länge des Eintrags der Typ 5-Partition im MBR ist die Summe aller verketteten logischen Partitionen eingetragen. Da immer ein Sektor von der erweiterten Partitionstabelle eingenommen wird, können erweiterte und logische Partition nicht gleich groß sein.
In einer erweiterten Partitionstabelle werden somit maximal die ersten zwei Einträge benutzt. Die Startsektoren werden hier nicht mehr relativ zum Anfang der Festplatte angegeben:
- Der erste Eintrag beschreibt die logische Partition. Dessen Startsektor wird immer relativ zur Position der aktuellen Partitionstabelle angegeben.
- Der zweite Eintrag kann eine Verkettung zu einer weiteren erweiterten Partitionstabelle enthalten und hat immer den Typ 5. Im Startsektor dieses Eintrags wird immer relativ zum Sektor der ersten erweiterten Partition verwiesen.
Alte Betriebssysteme erwarten den Start einer Partition immer an den Zylindergrenzen. Daher ergibt sich auch heute noch bei verbreiteten Betriebssystemen eine Lücke von 63 Sektoren zwischen erweiterter Partitionstabelle und dem Startsektor der entsprechenden logischen Partition. Diese Sektoren in der Lücke können z. B. für einen Bootmanager oder zum Verstecken von „geheimen“ Daten, aber auch von Bootsektorviren verwendet werden. Auch wurde dort früher eine BIOS-Erweiterung untergebracht, um auch Festplatten mit mehr als 8 GiB zu unterstützen, falls das BIOS des Mainboards dazu nicht imstande war.
Aufgrund der Entwicklung hin zu 4-kiB-Sektoren ist aber ein Alignment auf 63 Sektoren äußerst ungünstig. Daher wird neuerdings eine Lücke von 64 verwendet. Auch andere Zweierpotenzen sind gängig.
Siehe auch
- GUID Partition Table, Partitionstabelle auf EFI-basierten Computern