Wikipedia · einfach zusammengefasst · Stand
GUID Partition Table
GUID Partition Table. Standard für das Format von Partitionstabellen auf Festplatten oder anderen Datenträgern. Artikel · Diskussion.
Inhalt6 Abschnitte
Grundidee und Bedeutung
Die GUID Partition Table (GPT), auf Deutsch GUID-Partitionstabelle, ist ein Standard für Partitionstabellen auf Datenträgern wie Festplatten. Eine Partitionstabelle beschreibt, wie der Speicher eines Datenträgers in einzelne Bereiche, also Partitionen, aufgeteilt ist. GPT ist Teil des UEFI-Standards und gilt als Nachfolger der Partitionstabelle des Master Boot Record (MBR). UEFI ersetzte seit etwa 2010 auf PCs zunehmend das ältere BIOS; GPT kann unter Einschränkungen aber auch auf Computern mit BIOS-Firmware verwendet werden.
Wichtig ist GPT, weil es größere Datenträger und mehr Partitionen unterstützt als das alte MBR-Schema. Außerdem speichert GPT wichtige Informationen redundant, also zusätzlich an einer zweiten Stelle, und schützt sie mit CRC32-Prüfsummen. Dadurch kann das System erkennen, ob die Partitionstabelle beschädigt ist, und sie im Fehlerfall eher wiederherstellen.
Aufbau eines GPT-Datenträgers
Ein GPT-Datenträger besteht nach dem Schema aus mehreren Bereichen. Am Anfang steht im Sektor 0, also im ersten 512 Byte großen Datenblock, ein Master Boot Record. Dieser ist besonders eingerichtet und heißt Schutz-MBR, weil er nicht-GPT-fähigen MBR-Partitionierungsprogrammen den Datenträger als belegt erscheinen lässt. Dadurch soll verhindert werden, dass solche Programme die GPT-Struktur versehentlich überschreiben.
Danach folgt die primäre GPT. Sie besteht aus einem Header und den Partitionseinträgen. Anschließend kommen die eigentlichen Partitionen mit den Nutzdaten. Am Ende des Datenträgers liegt eine sekundäre GPT, ebenfalls mit Header und Partitionseinträgen. Diese sekundäre GPT ist teilweise eine Kopie der primären GPT: Die Felder für den eigenen und den alternativen Header sind vertauscht, und die Adresse der Partitionstabelle verweist auf die Kopie am Ende der Platte. Deshalb haben beide Header unterschiedliche CRC32-Prüfsummen.
Die Redundanz ist ein zentrales Merkmal: Wenn eine der beiden GPT-Strukturen beschädigt ist, kann festgestellt werden, welche fehlerhaft ist, und die Partitionstabelle kann unter Umständen wiederhergestellt werden.
Schutz-MBR, Header und Partitionseinträge
Im ersten Block des Datenträgers, LBA 0, liegt der MBR mit einer klassischen MBR-Partitionstabelle. Er enthält einen Eintrag, der den restlichen Datenträger als belegt kennzeichnet. Für Programme, die nur MBR verstehen, scheint deshalb der gesamte Platz vergeben zu sein. Als Partitionskennung wird EE₁₆ für einen Schutz-MBR mit nachfolgender GPT oder EF₁₆ bei einer EFI-Systempartition verwendet.
Der Header der primären GPT liegt im zweiten Block, LBA 1. Der Header der sekundären Backup-GPT liegt im letzten Block, LBA −1. Der Header beschreibt unter anderem die nutzbaren Blöcke des Datenträgers, die Position des eigenen Headers, die Position des Backup-Headers sowie Anzahl und Größe der Partitionseinträge. Die EFI-Spezifikation schreibt mindestens 16.384 Bytes für die Partitionstabelle vor; damit ist Platz für 128 Einträge. Header und Partitionseinträge werden mit CRC32-Prüfsummen geschützt, die Firmware, Bootloader oder Betriebssystem prüfen müssen. Wird ein Header etwa mit einem Hexeditor verändert, wird die Prüfsumme ungültig, und das System kann instabil oder unbrauchbar werden.
Partitionseinträge liegen bei der primären GPT in LBA 2 bis LBA 33, bei der sekundären GPT in LBA −33 bis LBA −2. Jeder Eintrag ist 128 Byte groß, sodass vier Einträge in einen 512-Byte-Block passen. Ein Eintrag enthält die Partitionstyp-GUID, die eindeutige Partitions-GUID, den ersten und letzten LBA der Partition, Attribute und einen Partitionsnamen mit 36 UTF-16LE-Zeichen. Die Partitionstyp-GUID für eine EFI-Systempartition lautet zum Beispiel {C12A7328-F81F-11D2-BA4B-00A0C93EC93B}. Microsoft definiert unter anderem Attribute für Systempartition, vor EFI verstecken, Legacy-BIOS-bootfähig, nur lesen, versteckt und nicht automatisch mounten.
Systempartition und Partitionstypen
Für startfähige Medien ist eine besondere Partition vorgesehen: die EFI System Partition (ESP). Eine EFI-Firmware sucht bei externen Medien auf dem FAT-Dateisystem dieser Partition nach Bootloadern und zeigt kompatible Einträge im EFI-Bootmenü an. Theoretisch werden FAT12, FAT16 und FAT32 unterstützt; praktisch wird durchgehend FAT32 verwendet. Bei internen Startmedien muss ein installiertes System den jeweiligen EFI-Bootloader im NVRAM eintragen. Das Bootmenü zeigt dann die konfigurierten Bootloader an.
GPT verwendet für Partitionstypen GUIDs, also weltweit eindeutige Kennungen. Beispiele aus der Tabelle sind die EFI System Partition mit C12A7328-F81F-11D2-BA4B-00A0C93EC93B, Microsoft basic data mit EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, Linux swap mit 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, Linux filesystem mit 0FC63DAF-8483-4772-8E79-3D69D8477DE4 und Apple APFS mit 7C3457EF-0000-11AA-AA11-00306543ECAC. Viele GPT-Partitionstypen haben entsprechende MBR-Partitionstypen, weil viele Systeme eine Überführung von MBR- in GUID-Partitionen erlauben und weil Hybrid-MBRs Partitionen sowohl als GPT- als auch als passende MBR-Partition abbilden.
Konvertierung, Grenzen und Hybrid-MBR
Eine Konvertierung von einer Master-Boot-Record-Partitionstabelle zu einer GUID-Partitionstabelle ist grundsätzlich möglich. Dafür muss jedoch genug freier Platz zwischen MBR und erster Partition sowie nach der letzten Partition vorhanden sein, damit die GPT-Datenstrukturen gespeichert werden können. Das Programm GPT fdisk, besser bekannt als gdisk, kann diese Konvertierung durchführen. Auch einige BSD-Disklabel-Partitionen können damit in GPT überführt werden.
GPT verwendet Logical Block Addressing (LBA) mit 64-Bit-Einträgen. Bei einer Sektorgröße von 512 Byte können dadurch Festplatten bis zu einer Gesamtkapazität von 8 Zebibyte adressiert werden. Die maximale Anzahl von Partitionen hängt von der Größe der Partitionstabelle ab. Laut Spezifikation muss sie mindestens Platz für 128 Partitionen bieten; Werkzeuge wie gdisk können eine größere Partitionstabelle erzeugen.
Ein Hybrid-MBR bedeutet, dass einzelne Partitionen sowohl in der GPT als auch in der MBR-Partitionstabelle definiert sind. Dadurch können Betriebssysteme auf dieselben Partitionen zugreifen, auch wenn sie nur GPT oder nur MBR unterstützen. Das kann Dual-Boot ermöglichen. Gefährlich ist dabei, dass Änderungen nur an einer der beiden Partitionstabellen zu schweren Partitionierungsfehlern führen können. Deshalb müssen Hybrid-Partitionierungen mit dafür geeigneten Programmen erfolgen.
Hybrid-Partitionen sind auf vier gemeinsame Partitionen beschränkt, weil der MBR nur vier primäre Einträge bietet und GPT keine erweiterten MBR-Partitionen unterstützt. Da für EFI eine primäre Partition, die EFI System Partition, benötigt wird, bleiben drei Hybrid-Partitionen für Betriebssysteme oder gemeinsame Daten. Apple nutzte auf Intel-Macs mit Boot Camp bis Mountain Lion, macOS-Version 10.8, zwingend einen Hybrid-MBR. Spätere Intel-Macs konnten Windows ab Windows 8 auch von einer GUID-Partition starten; ältere oder bestehende Windows-Installationen verwenden auf Intel-Macs weiterhin teils einen Hybrid-MBR und starten Windows dann im BIOS-Modus.
Unterstützung durch Betriebssysteme
Für Betriebssysteme auf Itanium-Architektur, auch IA-64, ist GPT-Unterstützung notwendig, weil diese Rechner EFI verwenden. Dazu gehören entsprechende Itanium-Versionen von FreeBSD, HP-UX, Linux, NetBSD, OpenVMS, Solaris und Windows. Seit UEFI das PC-BIOS ablöste, unterstützen auch alle 64-Bit-PC-Betriebssysteme für x64 beziehungsweise x86-64 die GUID-Partitionstabelle. Auch 32-Bit-PC-Betriebssysteme unterstützen GPT häufig, seit UEFI ab etwa 2005 auch auf IA-32-Systemen aufkam; oft aber nicht als Systemlaufwerk zum Starten.
Seit der Umstellung der Apple-Macintosh-Rechner auf Intel-Prozessoren Anfang 2006 verwendet Mac OS X, seit 2016 macOS genannt, ebenfalls GPT. Mac OS X Tiger 10.4 und neuer kann GPT-Medien auch auf PowerPC verwenden, firmwarebedingt aber nicht davon starten.
32-Bit-Versionen von Windows XP können auf GPT-Festplatten nur eingeschränkt installiert und betrieben werden, weil sie nur den MBR und nicht die GPT auslesen. Mit hybriden Partitionstabellen können Partitionen zwar zugleich als MBR- und GPT-Partition eingerichtet werden, im MBR stehen wegen der EFI-Reservierung aber höchstens drei primäre Partitionen zur Verfügung. Erweiterte MBR-Partitionen werden von GPT nicht unterstützt.
In der frühen GPT-Einführung zeigte ein c’t-Test mit einer 4 TB großen GPT-Festplatte, dass einige Festplattentreiber beim Schreiben jenseits von 2 TB Daten an den Anfang der Festplatte schrieben. Dadurch konnte es zu massiven Datenverlusten oder zum Verlust der Formatierung kommen. Das Problem trat anscheinend besonders bei 32-Bit-Versionen von Windows XP mit 512-Byte-Sektoren und 32-Bit-Treiberdesign auf.
Ein 64-Bit-Linux kann mit GRUB2 auch ohne UEFI oder besondere BIOS-Unterstützung von einer GPT-Partition booten. GPT ist also nicht zwingend an UEFI gekoppelt. OpenBSD unterstützt die Installation auf einer GPT-Partition eines x86_64-UEFI-Systems seit Version 5.9.