GUID Partition Table
GUID Partition Table (GPT), zu deutsch GUID-Partitionstabelle, ist ein Standard für das Format von Partitionstabellen auf Festplatten oder anderen Datenträgern. Die Spezifikation ist Teil des UEFI-Standards, der das BIOS in PCs ersetzen soll. GPT ist dabei der Nachfolger der MBR-Partitionstabellen. GPT können aber auch mit heutigen BIOSen verwendet werden[1].
Inhaltsverzeichnis |
[Bearbeiten] Aufbau
Entsprechend dem GPT-Schema besteht ein Datenträger aus den folgenden Bereichen:
- MBR (als Schutz vor Veränderungen durch alte Partitionierungstools)
- primäre GPT, bestehend aus Header und Partitionseinträgen
- Partitionen
- sekundäre GPT, bestehend aus Partitionseinträgen und Header
Die sekundäre GPT am Ende des Datenträgers ist eine Kopie der primären GPT am Anfang des Datenträgers. Durch diese Redundanz kann im Fehlerfall die Partitionstabelle wiederhergestellt werden. Da in der GPT eine Prüfsumme eingetragen wird, kann festgestellt werden, welche der beiden GPT konsistent ist.
[Bearbeiten] MBR-Partitionstabelle
Im ersten Sektor/Block des Datenträgers (LBA 0) befindet sich der Master Boot Record (MBR). Dort befindet sich eine klassische MBR-Partitionstabelle mit einem Eintrag, der den Rest des Datenträgers belegt. Für ein Betriebssystem, das nur MBR- aber keine GPT-Partitionstabellen lesen kann, erscheint der gesamte Platz des Datenträgers als belegt. Dieser MBR stellt einen Schutz für den Inhalt des Datenträgers dar, falls auf diesen mit alten Partitionierungstools, die das GPT-Schema nicht kennen, zugegriffen wird.
[Bearbeiten] Header der GUID-Partitionstabelle
Im zweiten Sektor/Block (LBA 1) befindet sich der Header der primären GPT. Der Header der sekundären GPT befindet sich im letzten Sektor/Block (LBA −1).
Im Header der GPT sind folgende Informationen abgelegt:
- Signatur (8 Bytes) – „EFI PART“
- Revision (4 Bytes) – 0x00010000
- Header-Größe (4 Bytes)
- Header-Prüfsumme (4 Bytes)
- Reservierter Platz (4 Bytes) – darf nicht belegt sein
- Position der primären Partitionstabelle (8 Bytes)
- Position der sekundären Partitionstabelle (8 Bytes)
- Position des ersten benutzbaren Blocks (8 Bytes)
- Position des letzten benutzbaren Blocks (8 Bytes)
- GUID (16 Bytes)
- Position der Partitionstabelle (8 Bytes)
- Anzahl der Partitionen (4 Bytes)
- Größe des Partitionseintrags (4 Bytes)
- Partitionstabellen-Prüfsumme (4 Bytes) – CRC32
[Bearbeiten] Partitionseintrag
Die Partitionseinträge werden in den darauffolgenden 32 Sektoren/Blöcken (LBA 2 bis 33 bzw. LBA −33 bis −2) abgelegt. Jeder Partitionseintrag umfasst 128 Byte. Somit können pro logischem Block vier Partitionseinträge abgelegt werden.
Im Partitionseintrag selbst sind folgende Daten hinterlegt:
- Partitionstyp (ID) (16 Bytes)
- GUID der Partition (16 Bytes)
- Beginn der Partition (8 Bytes)
- Ende der Partition (8 Bytes)
- Attribute (8 Bytes)
- Partitionsname (72 Bytes)
[Bearbeiten] Begrenzungen
Die GPT verwendet Logical Block Addressing (LBA) mit 64 Bit umfassenden Einträgen, sodass (bei 512 Byte Sektorgröße) Festplatten bis zu einer Gesamtgröße von 8192 Exabyte adressiert und diese in bis zu 128 Partitionen aufgeteilt werden können.
[Bearbeiten] Unterstützung in Betriebssystemen
Für Betriebssysteme, die auf der IA64-Architektur (überwiegend Großrechner) aufbauen, ist die Unterstützung von GPT zwingend notwendig, da diese Rechner EFI zum Booten verwenden. Darunter fallen die entsprechenden 64-Bit-Versionen von FreeBSD, HP-UX, Linux, NetBSD, OpenVMS und Microsoft Windows. Auch Mac OS X unterstützt es seit Umstellung der Apple Macintosh auf Intel-Prozessoren Anfang 2006, sowie die seit Anfang 2005 verfügbare, für die IA64-Architektur angepasste Version von Solaris.
Die Versionen von Microsoft Windows XP, die noch für die 32-Bit-Intel i386-Architektur entwickelt wurden, können auf einer GPT-Festplatte nur mit Einschränkungen installiert werden. Unter anderem lesen sie nur den Master Boot Record (MBR), um Partitionierungsdaten zu erhalten. Es stehen somit nur maximal drei Partitionen zur Verfügung, da der MBR nicht mehr als vier Einträge zulässt, die erste Partition aber für die EFI-Firmware reserviert ist und erweiterte Partitionen, die als Container mehrere logische Partitionen enthalten können, von GPT nicht mehr unterstützt werden. (Siehe: Verständlichere Erklärung, aber unter Vorbehalt)
Bis zum Erscheinen von Windows Vista Anfang 2007 richteten sich die 64-Bit-Windows-Versionen vornehmlich an Server-Betreiber und professionelle Anwender (z. B. CAD oder Grafik/Design). Dazu zählt auch die bereits 2005 erschienene Windows XP Professional x64 Edition. Bei deren Erscheinen war die umfassende GPT-Unterstützung durch entsprechende 64-Bit-Treiber nur bei ausgesuchter Hardware vorhanden. Mit Erscheinen von Vista wurde die Verfügbarkeit von 64-Bit-Treibern generell besser, sodass diese in der Regel ebenfalls die x64-Version von XP unterstützen.
Das Fachmagazin c’t konnte in der Anfangsphase der Einführung während des Tests einer 4 TB großen, mit GPT formatierten Festplatte feststellen, dass zahlreiche Festplattentreiber namhafter Hersteller beim Schreiben auf Bereiche jenseits von 2 TB die Daten statt an der gewünschten Stelle am Anfang der Festplatte ablegten, so dass es zu massiven Datenverlusten oder gar zum Verlust der Formatierung der Festplatte kam.[2] Das Problem trat anscheinend speziell bei den 32-Bit-Versionen von Windows XP auf, die zwar teilweise schon Unterstützung für GPT mit sich führten, jedoch aufgrund ihres 32-Bit-Treiberdesigns die 2-TB-Grenze nicht überschreiten konnten.[3] Da der Einsatz solcher Partitionen damals noch hauptsächlich bei Servern anzutreffen war, ergaben sich solche Probleme am ehesten dann, wenn die Festplatten eines solchen Systems mit anderen Rechnern ausgetauscht wurden.
Ein 64-Bit-Linux kann – ganz ohne UEFI oder gesonderte BIOS-Unterstützung – mit GRUB2 von einer GPT-Partition booten. Es ist also kein UEFI dazu notwendig – die Kopplung von GPT an (U)EFI ist somit nicht zwingend.[4]
[Bearbeiten] GUIDs und deren Zuordnung
| Betriebssystem | Partitionstyp | GUID |
|---|---|---|
| (Kein Betriebssystem) | Unbenutzt | 00000000-0000-0000-0000-000000000000 |
| MBR | 024DEE41-33E7-11D3-9D69-0008C781F39F | |
| EFI-Systempartition | C12A7328-F81F-11D2-BA4B-00A0C93EC93B | |
| BIOS-Bootpartition | 21686148-6449-6E6F-744E-656564454649 | |
| Windows | von Microsoft reservierte Partition | E3C9E316-0B5C-4DB8-817D-F92DF00215AE |
| Basic Data Partition | EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 | |
| Logical Disk Manager Partition für Meta-Daten | 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3 | |
| Logical Disk Manager Partition für Daten | AF9B60A0-1431-4F62-BC68-3311714A69AD | |
| HP-UX | Partition für HP-UX-LVM | 75894C1E-3AEB-11D3-B7C1-7B03A0000000 |
| Service Partition | E2A1E728-32E3-11D6-A682-7B03A0000000 | |
| Linux | Data partition | EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 |
| RAID partition | A19D880F-05FC-4D3B-A006-743F0F84911E | |
| Swap partition | 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F | |
| Partition für Linux-LVM | E6D6D379-F507-44C2-A23C-238F2A3DF928 | |
| Reserved | 8DA63339-0007-60C0-C436-083AC8230908 | |
| FreeBSD | Data partition | 516E7CB4-6ECF-11D6-8FF8-00022D09712B |
| Swap partition | 516E7CB5-6ECF-11D6-8FF8-00022D09712B | |
| Unix File System (UFS) partition | 516E7CB6-6ECF-11D6-8FF8-00022D09712B | |
| Partition für FreeBSD-LVM (Vinum) | 516E7CB8-6ECF-11D6-8FF8-00022D09712B | |
| ZFS partition | 516E7CBA-6ECF-11D6-8FF8-00022D09712B | |
| Mac OS X | Partition für Hierarchical File System (HFS+) | 48465300-0000-11AA-AA11-00306543ECAC |
| Partition für UFS | 55465300-0000-11AA-AA11-00306543ECAC | |
| Partition für Software-RAID | 52414944-0000-11AA-AA11-00306543ECAC | |
| Partition für Apple TV Recovery | 5265636F-7665-11AA-AA11-00306543ECAC | |
| Solaris | Boot partition | 6A82CB45-1DD2-11B2-99A6-080020736631 |
| Root partition | 6A85CF4D-1DD2-11B2-99A6-080020736631 | |
| Swap partition | 6A87C46F-1DD2-11B2-99A6-080020736631 | |
| Backup partition | 6A8B642B-1DD2-11B2-99A6-080020736631 | |
| /usr partition | 6A898CC3-1DD2-11B2-99A6-080020736631 | |
| /var partition | 6A8EF2E9-1DD2-11B2-99A6-080020736631 | |
| /home partition | 6A90BA39-1DD2-11B2-99A6-080020736631 | |
| EFI_ALTSCTR | 6A9283A5-1DD2-11B2-99A6-080020736631 | |
| Reservierte Partition | 6A945A3B-1DD2-11B2-99A6-080020736631 | |
| 6A9630D1-1DD2-11B2-99A6-080020736631 | ||
| 6A980767-1DD2-11B2-99A6-080020736631 | ||
| 6A96237F-1DD2-11B2-99A6-080020736631 | ||
| 6A8D2AC7-1DD2-11B2-99A6-080020736631 |
[Bearbeiten] Quellen
- ↑ Zeitschrift c’t Nr. 04/2011, S. 170ff. – Linux kann ohne gesonderte BIOS-Unterstützung GPT verwenden und von GPT-Partition booten
- ↑ c’t 2/2009 RAID-System: 4 TByte in einem Gehäuse, S. 54
- ↑ Microsoft technet GUID-Partitionstabelle http://technet.microsoft.com/de-de/library/cc773223.aspx
- ↑ Zeitschrift c’t Nr. 04/2011, S. 170ff. – Linux kann ohne gesonderte BIOS-Unterstützung GPT verwenden und von GPT-Partition booten