GUID Partition Table
GUID Partition Table (GPT), zu deutsch GUID-Partitionstabelle (von englisch Globally Unique Identifier), ist ein Standard für das Format von Partitionstabellen auf Datenträgern wie beispielsweise Festplatten. Die Spezifikation ist Teil des UEFI-Standards, der ausgehend von Großrechnern etwa seit dem Jahr 2000 das BIOS in PCs ersetzte. GPT ist dabei der Nachfolger der Partitionstabelle des Master Boot Record. GUID-Partitionstabellen können unter Einschränkungen auch auf Computern mit einem BIOS als Firmware verwendet werden.[1]
Aufbau
Entsprechend dem GPT-Schema besteht ein Datenträger aus den folgenden Bereichen:
- Master Boot Record (MBR) in Sektor 0 (dem ersten, 512 Bytes großen Datenblock), dessen spezielle Konfiguration den Einsatz der Platte auch unter MBR-Betriebssystemen erlaubt und vor Veränderungen durch nicht-GPT-taugliche MBR-Partitionierungstools schützt (Schutz-MBR; von englisch protective MBR)
- primäre GUID-Partitionstabelle (GPT), bestehend aus Header und Partitionseinträgen
- Partitionen
- sekundäre GPT, bestehend aus Header und Partitionseinträgen
Die sekundäre GUID-Partitionstabelle am Ende des Datenträgers ist teilweise eine Kopie der primären GPT am Anfang des Datenträgers: Die Inhalte der Felder für die Positionen des eigenen und des alternativen GPT Headers sind vertauscht und die Adresse der Partitionstabelle verweist auf die Kopie der Partitionstabelle am Ende der Platte vor dem alternativen Header. Damit haben beide GPT-Header auch eine unterschiedliche CRC32-Prüfsumme. Durch die enthaltene Redundanz kann im Fehlerfall die Partitionstabelle wiederhergestellt werden. Da in der GPT eine Prüfsumme eingetragen wird, kann festgestellt werden, ob beide bzw. welche der beiden GPT fehlerhaft sind.
MBR-Partitionstabelle
Im ersten Sektor/Block des Datenträgers (LBA 0) befindet sich der MBR mit einer klassischen MBR-Partitionstabelle und einem Eintrag, der den Rest des Datenträgers als belegt kennzeichnet. Für ein Partitionierungstool, das nur MBR-, aber keine GPT-Partitionstabellen lesen kann, erscheint daher der gesamte Platz auf dem Datenträger als belegt. Der MBR einer GPT-Festplatte stellt somit einen Schutz für den Inhalt des Datenträgers dar, falls auf diesen mit Partitionierungstools, die das GPT-Schema nicht kennen, zugegriffen werden soll (daher auch englisch protective MBR). Als Partitionskennung wird der Wert EE16 für einen Schutz-MBR (mit nachfolgender GUID-Partitionstabelle) oder EF16 bei einer EFI-Systempartition verwendet.[2]
Header der GUID-Partitionstabelle
Im zweiten Sektor/Block (LBA 1) befindet sich der Header der primären GPT und im letzten Sektor/Block (LBA −1) befindet sich der Header der sekundären Backup-GPT. Der Header selbst beschreibt u. a. die nutzbaren Blöcke des Datenträgers, die Position des eigenen Headers und des sekundären Backup-Headers sowie die Anzahl und Größe der Partitionseinträge. Die EFI-Spezifikationen[3] schreiben ein Minimum von 16.384 Bytes für die Partitionstabelle vor, so dass es Platz für 128 Einträge gibt. Weiterhin werden der Header selbst und die Partitionseinträge mit CRC32-Prüfsummen abgesichert, die von der Firmware, dem Bootloader oder dem Betriebssystem überprüft werden müssen. Wird daher der Header z. B. mit einem Hexeditor verändert, macht dies die Checksumme ungültig und das System wird instabil oder sogar unbrauchbar.
Im Header der GPT sind folgende Informationen abgelegt:
Offset | Länge | Inhalt |
---|---|---|
0 | 8 bytes | Signatur („EFI PART“, 45h 46h 49h 20h 50h 41h 52h 54h )
|
8 | 4 bytes | Revision (00h 00h 01h 00h )
|
12 | 4 bytes | Header-Größe – Little Endian (5Ch 00h 00h 00h entspricht 92 bytes)
|
16 | 4 bytes | Header-CRC32-Prüfsumme (von Offset 0 bis Header-Größe, dieses Feld selbst wird bei der Berechnung auf 0 gesetzt) |
20 | 4 bytes | Reservierter Bereich – muss Null (0) sein |
24 | 8 bytes | Position des eigenen LBA (dieses Headers) |
32 | 8 bytes | Position des Backup-LBA (des anderen Headers) |
40 | 8 bytes | Erster benutzbarer LBA für Partitionen (Letzter LBA der primären Partitionstabelle + 1, normalerweise 34) |
48 | 8 bytes | Letzter benutzbarer LBA (Erster LBA der sekundären Partitionstabelle – 1, normalerweise Datenträgergröße – 34) |
56 | 16 bytes | Datenträger-GUID (als Referenz siehe auch UUID bei UNIXe) |
72 | 8 bytes | Start-LBA der Partitionstabelle |
80 | 4 bytes | Anzahl der Partitionseinträge (Partitionen) |
84 | 4 bytes | Größe eines Partitionseintrags (normalerweise 128) |
88 | 4 bytes | Partitionstabellen-CRC32-Prüfsumme |
92 | * | Reservierter Bereich; muss mit Nullen, für den Rest des Blocks, belegt sein (420 Bytes bei einem 512-byte LBA) |
Partitionseintrag
Die Partitionseinträge werden im LBA 2 bis LBA 33 (sekundäre GPT: LBA -33 bis LBA -2) abgelegt. Jeder Partitionseintrag umfasst 128 Byte. Somit können pro logischem Block vier Partitionseinträge abgelegt werden. Diese in der Spezifikation vorgeschriebene Mindestanzahl von 32 Sektoren für Partitionseinträge kann bei Bedarf beliebig erhöht werden, so dass die maximal mögliche Anzahl an Partitionen prinzipiell nur durch den zur Verfügung stehenden Plattenplatz beschränkt wird.
Im Partitionseintrag selbst sind folgende Daten hinterlegt:
Offset | Länge | Inhalt |
---|---|---|
0 | 16 Bytes | Partitionstyp-GUID |
16 | 16 Bytes | Eindeutige Partitions-GUID |
32 | 8 Bytes | Beginn der Partition (erster LBA – Little-Endian) |
40 | 8 Bytes | Ende der Partition (letzter LBA – inklusive) |
48 | 8 Bytes | Attribute (siehe folgende Tabelle) |
56 | 72 Bytes | Partitionsname (36 UTF-16LE-Zeichen) |
insg. | 128 Bytes |
Die einzelnen Einträge sind verhältnismäßig einfach aufgebaut. Die ersten 16 Bytes beschreiben den Partitionstyp. Die Partitionstyp-GUID für eine EFI-Systempartition ist z. B. {C12A7328-F81F-11D2-BA4B-00A0C93EC93B}. Es folgen 16 Bytes mit der Partitions-GUID. Dann folgen die Nummer des ersten und des letzten LBA-Sektors der Partition, 8 Bytes mit Attributen und der Name der Partition (36 Unicode-Zeichen lang).
Microsoft definiert folgende Attributeinträge:
Bit | Inhalt |
---|---|
0 | Systempartition |
1 | vor EFI verstecken |
2 | Legacy BIOS bootfähig (analog MBR 80h Active flag)[4]
|
60 | Nur lesen (Read-only) |
62 | Versteckt (Hidden) |
63 | Nicht automatisch mounten (= keinen Laufwerksbuchstaben zuweisen) |
Systempartition
Für startfähige Medien, die zum Booten eines Systems verwendet werden können, ist eine spezielle Partition namens englisch EFI System Partition, kurz ESP, vorgesehen. Eine System-Firmware nach dem EFI-Standard sucht bei externen Medien auf der EFI-Systempartition nach Bootloadern und bietet im EFI-Bootmenü alle kompatiblen Einträge zur Auswahl an. Bei internen Startmedien, etwa der eingebauten Festplatte, muss ein installiertes System den jeweiligen EFI-Bootloader im NVRAM als Eintrag hinzufügen. Der Standardeintrag lässt sich mit Dienstprogrammen verändern, im Bootmenü werden alle konfigurierten Bootloader angezeigt.
Partitionstyp-GUIDs
Partitionstyp | ursprüngliches System | englische Bezeichnung | Bezeichnung und Beschreibung | |
---|---|---|---|---|
GPT (GUID, hexadezimal) | MBR (hex) | |||
00000000-0000-0000-0000-000000000000
|
00 | GPT | Unused entry | Eintrag für eine unbenutzte Partition. |
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
|
01 | IBM PC/kompatibel | Microsoft basic data | FAT12 |
04 | FAT16 < 32 MB | |||
06 | FAT16 | |||
07 | NTFS (oder HPFS) | |||
0b | FAT32 | |||
0c | FAT32 LBA | |||
0e | FAT16 LBA | |||
11 | FAT12 (versteckt) | |||
14 | FAT16 < 32 MB (versteckt) | |||
16 | FAT16 (versteckt) | |||
17 | NTFS (oder HPFS) (versteckt) | |||
1b | FAT32 (versteckt) | |||
1c | FAT32 LBA (versteckt) | |||
1e | FAT16 LBA (versteckt) | |||
E3C9E316-0B5C-4DB8-817D-F92DF00215AE
|
0c | Windows (EFI) | Microsoft reserved | Hybrid-MBR-Typ 0x0c entspricht dem von FAT32 LBA
|
DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
|
27 | Windows | Windows RE | Wiederherstellungspartition[5] mit Windows Recovery Environment[6] (ab Vista, basiert auf Windows PE) |
7412F7D5-A156-4B13-81DC-867174929325
|
30, e1 |
ONIE | ONIE boot | Open Network Install Environment (ONIE)[7][8] |
D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149
|
ONIE config | |||
C91818F9-8025-47AF-89D2-F030D7000C2C
|
39 | Plan 9 | Plan 9 | Vom Betriebssystem Plan 9 verwendete Partition.[9] |
9E1A2D38-C612-4316-AA26-8B49521E5A8B
|
41 | PReP | PowerPC PReP boot | PReP war der Vorläufer von CHRP bzw. der PowerPC Platform. |
AF9B60A0-1431-4F62-BC68-3311714A69AD
|
42 | Windows | Windows LDM data | Der Logical Disk Manager (LDM) ist die Umsetzung eines Logical Volume Manager unter Windows NT, der in Windows 2000 bis Windows 7 vorhanden ist. Ab Windows 8 ist dessen Nachfolger Storage Spaces enthalten. |
5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
|
Windows LDM metadata | |||
E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D
|
Windows Storage Spaces | |||
37AFFC90-EF7D-4E96-91C3-2D7AE055B174
|
75 | IBM GPFS | General Parallel File System (GPFS) | |
FE3A2A5D-4F32-41A7-B725-ACCC3285A309
|
7f | Chromebook | ChromeOS kernel | Google Chrome OS[10][11] |
3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC
|
ChromeOS root | |||
2E0A753D-9E48-43B0-8337-B15192CB1B5E
|
ChromeOS reserved | |||
0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
|
82 | Linux | Linux swap | Auslagerungspartition von Linux. Auch Solaris verwendet auf MBR-Partitionen den Typ 0x82 als swap.
|
0FC63DAF-8483-4772-8E79-3D69D8477DE4
|
83 | Linux filesystem | Dieser Partitionstyp wird auch als “Linux native” bezeichnet. | |
8DA63339-0007-60C0-C436-083AC8230908
|
Linux reserved | Der Hybrid-MBR-Typ entspricht dem von “Linux native”, 0x83 .
| ||
933AC7E1-2EB4-4F13-B844-0E14E2AEF915
|
83 | freedesktop.org (Linux) | Linux /home | auto-mount für systemd von freedesktop.org[12][13] |
3B8F8425-20E0-4F3B-907F-1A25A76F98E8
|
Linux /srv | |||
7FFEC5C9-2D00-49B7-8941-3EA10A5586B7
|
Linux dm-crypt | |||
CA7D7CCB-63ED-4C53-861C-1742536059CC
|
Linux LUKS | |||
44479540-F297-41B2-9AF7-D131D5F0458A
|
Linux x86 | root-Partition auf 32-Bit-x86-Systemen (IA-32). | ||
4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709
|
Linux x86-64 | root-Partition auf 64-Bit-x86-Systemen (IA-32 im x64-Modus). | ||
69DAD710-2CE4-4E3C-B16C-21A1D49ABED3
|
Linux ARM32 | root-Partition auf 32-Bit-ARM-Systemen. | ||
B921B045-1DF0-41C3-AF44-4C6F280D3FAE
|
Linux ARM64 | root-Partition auf 64-Bit-ARM-Systemen (ARMv8). | ||
993d8d3d-f80e-4225-855a-9daf8ed7ea97
|
– | Linux IA-64 | root-Partition auf Itanium-Systemen (IA-64). | |
D3BFE2DE-3DAF-11DF-BA40-E3A556D89593
|
84 | Intel-PC | Intel Rapid Start | Was als Intel Rapid Start Technology bezeichnet wird, ist eigentlich eine Mischform aus Bereitschaftsbetrieb (S3, “suspend to RAM”) und Ruhezustand (S4, “suspend to disk”).[14] |
E6D6D379-F507-44C2-A23C-238F2A3DF928
|
8e | Linux | Linux LVM | Logical Volume Manager |
734E5AFE-F61A-11E6-BC64-92361F002671
|
a2 | Atari TOS | TOS basic data | FAT16 < 32 MB, 'GEM'
|
FAT16, 'BGM'
| ||||
FAT32, 'F32'
| ||||
516E7CB4-6ECF-11D6-8FF8-00022D09712B
|
a5 | FreeBSD | FreeBSD Disklabel | |
83BD6B9D-7F41-11DC-BE0B-001560B84F0F
|
FreeBSD boot | |||
516E7CB5-6ECF-11D6-8FF8-00022D09712B
|
FreeBSD swap | |||
516E7CB6-6ECF-11D6-8FF8-00022D09712B
|
FreeBSD UFS | |||
516E7CBA-6ECF-11D6-8FF8-00022D09712B
|
FreeBSD ZFS | |||
516E7CB8-6ECF-11D6-8FF8-00022D09712B
|
FreeBSD Vinum/RAID | |||
85D5E45A-237C-11E1-B4B3-E89A8F7FC3A7
|
a5 | MidnightBSD | MidnightBSD data | |
85D5E45E-237C-11E1-B4B3-E89A8F7FC3A7
|
MidnightBSD boot | |||
85D5E45B-237C-11E1-B4B3-E89A8F7FC3A7
|
MidnightBSD swap | |||
0394EF8B-237E-11E1-B4B3-E89A8F7FC3A7
|
MidnightBSD UFS | |||
85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7
|
MidnightBSD ZFS | |||
85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7
|
MidnightBSD Vinum | |||
824CC7A0-36A8-11E3-890A-952519AD3F61
|
a6 | OpenBSD | OpenBSD data | |
55465300-0000-11AA-AA11-00306543ECAC
|
a8 | Mac OS X | Apple UFS | Partition, die ein Unix File System enthält. Entspricht dem APM-Partitionstyp Apple_UFS .
|
516E7CB4-6ECF-11D6-8FF8-00022D09712B
|
a9 | FreeBSD | FreeBSD Disklabel | FreeBSD, NetBSD, OpenBSD (unter OpenBSD wird MBR-Typ 0xa6 verwendet[15])
|
49F48D32-B10E-11DC-B99B-0019D1879648
|
NetBSD | NetBSD swap | ||
49F48D5A-B10E-11DC-B99B-0019D1879648
|
NetBSD FFS | |||
49F48D82-B10E-11DC-B99B-0019D1879648
|
NetBSD LFS | |||
2DB519C4-B10F-11DC-B99B-0019D1879648
|
NetBSD concatenated | |||
2DB519EC-B10F-11DC-B99B-0019D1879648
|
NetBSD encrypted | |||
49F48DAA-B10E-11DC-B99B-0019D1879648
|
NetBSD RAID | |||
426F6F74-0000-11AA-AA11-00306543ECAC
|
ab | macOS | Apple boot | Wiederherstellungspartition seit Mac OS X Lion (10.7, 2011). Enthält ein HFS+- oder APFS-Dateisystem und heißt normalerweise Recovery HD , ist jedoch versteckt.
|
48465300-0000-11AA-AA11-00306543ECAC
|
af | Apple HFS/HFS+ | Partition für das Dateisystem HFS+, entspricht APM-Partitionstyp Apple_HFSX . Das ältere Hierarchical File System (HFS), APM-Partitionstyp Apple_HFS , findet auf GPT-Partitionen normalerweise keine Verwendung mehr.
| |
52414944-0000-11AA-AA11-00306543ECAC
|
Apple RAID | Beherbergt eine Partition aus einem RAID-Verbund. Entspricht dem APM-Partitionstyp Apple_RAID .
| ||
52414944-5F4F-11AA-AA11-00306543ECAC
|
Apple RAID offline | Beherbergt eine aus einem RAID-Verbund entfernte Partition. | ||
4C616265-6C00-11AA-AA11-00306543ECAC
|
Apple Label | “Apple Label” ist eine Disklabel-Variante für Mac OS X.[16] | ||
5265636F-7665-11AA-AA11-00306543ECAC
|
AppleTV Recovery | Das Apple TV verwendet ein Betriebssystem auf Basis von Mac OS X mit einer für Fernseher optimierten Benutzeroberfläche. | ||
53746F72-6167-11AA-AA11-00306543ECAC
|
Apple Core Storage | Eine Core-Storage-Partition für FileVault 2 (verschlüsselt). Apple Fusion Drive verwendet ebenfalls eine Partition dieses Typs. | ||
B6FA30DA-92D2-4A9A-96F1-871EC6486200
|
Apple SoftRAID Status | Apple SoftRAID-Partition. | ||
2E313465-19B9-463F-8126-8A7993773801
|
Apple SoftRAID Scratch | |||
FA709C7E-65B1-4593-BFD5-E71D61DE9B02
|
Apple SoftRAID Volume | |||
BBBA6DF5-F46F-4A89-8F59-8765B2727503
|
Apple SoftRAID Cache | |||
7C3457EF-0000-11AA-AA11-00306543ECAC
|
Apple APFS | Partition für das Dateisystem APFS, dem Nachfolger von HFS+ auf macOS. | ||
CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1
|
b3 | QNX | QNX6 Power-Safe | |
0311FC50-01CA-4725-AD77-9ADBB20ACE98
|
bc | Acronis | Acronis Secure Zone | |
6A82CB45-1DD2-11B2-99A6-080020736631
|
be | Solaris | Solaris boot | |
6A85CF4D-1DD2-11B2-99A6-080020736631
|
bf | Solaris root | ||
6A898CC3-1DD2-11B2-99A6-080020736631
|
Solaris /usr | Beherbergt bis Solaris 9 üblicherweise das Dateisystem UFS und ab Solaris 10 ZFS. MacZFS[17] verwendet dieselbe GUID. | ||
6A87C46F-1DD2-11B2-99A6-080020736631
|
Solaris swap | |||
6A8B642B-1DD2-11B2-99A6-080020736631
|
Solaris backup | |||
6A8EF2E9-1DD2-11B2-99A6-080020736631
|
Solaris /var | |||
6A90BA39-1DD2-11B2-99A6-080020736631
|
Solaris /home | |||
6A9283A5-1DD2-11B2-99A6-080020736631
|
Solaris alternate sector | |||
6A945A3B-1DD2-11B2-99A6-080020736631
|
bf | Solaris Reserved | ||
6A9630D1-1DD2-11B2-99A6-080020736631
| ||||
6A980767-1DD2-11B2-99A6-080020736631
| ||||
6A96237F-1DD2-11B2-99A6-080020736631
| ||||
6A8D2AC7-1DD2-11B2-99A6-080020736631
| ||||
75894C1E-3AEB-11D3-B7C1-7B03A0000000
|
c0 | HP-UX | HP-UX data | |
E2A1E728-32E3-11D6-A682-7B03A0000000
|
HP-UX service | |||
BC13C2FF-59E6-4262-A352-B275FD6F7172
|
ea | freedesktop.org | Freedesktop $BOOT | [13] |
42465331-3BA3-10F1-802A-4861696B7521
|
eb | Haiku | Haiku BFS | Obwohl BeOS selbst keine GUID-Partitionstabelle unterstützte, wird diese Partition von dessen Weiterentwicklung Haiku für ein Be File System verwendet. |
BFBFAFE7-A34F-448A-9A5B-6213EB736C22
|
ed | ESP, herstellerspezifisch | Lenovo system partition | Herstellerspezifische EFI System Partition (ESP), die von der spezifischen Firmware (UEFI) als ESP identifiziert wird. |
F4019732-066E-4E12-8273-346C5641494F
|
Sony system partition | |||
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
|
ef | EFI | EFI System (ESP) | Diese Partition wird als EFI System Partition (ESP) bezeichnet. Sie enthält ein FAT-Dateisystem, von dem die Firmware eine ausführbare Datei (PE/COFF), z. B. \EFI\BOOT\BOOTX64.EFI , lädt und ausführt. Unter parted wird diese Partition mit “boot flag”, also als Startpartition, angezeigt.[18]
|
024DEE41-33E7-11D3-9D69-0008C781F39F
|
MBR partition scheme | Diese Partition enthält eine eingebettete vollständige MBR-Partitionstabelle samt Partitionen. Da die enthaltenen Partitionen jedoch keine Hybrid-Partitionen sind, kann darauf nicht aus der GUID-Partitionstabelle zugegriffen werden. Doch ist es damit möglich, eine Partition zu Virtualisierungszwecken an eine Virtuelle Maschine durchzureichen, die darauf eine vollständige MBR-Partitionstabelle einrichtet und verwendet. | ||
21686148-6449-6E6F-744E-656564454649
|
BIOS boot partition | Eine Partition, die von GRUB zum Starten auf BIOS-basierten PCs verwendet wird. Die GUID liest sich !haHdInotNeedEFI in Hexadezimaldarstellung (was in der benötigten Little-Endian-Form im GPT dann „Hah!IdontNeedEFI“ ergibt).
| ||
4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D
|
f8 | Ceph[19] | Ceph OSD | Ceph Object Storage Daemon |
4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D
|
Ceph dm-crypt OSD | Ceph Object Storage Daemon (verschlüsselt) | ||
45B0969E-9B03-4F30-B4C6-B4B80CEFF106
|
Ceph journal | |||
45B0969E-9B03-4F30-B4C6-5EC00CEFF106
|
Ceph dm-crypt journal | |||
89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE
|
Ceph disk in creation | |||
89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE
|
Ceph dm-crypt disk in creation | |||
AA31E02A-400F-11DB-9590-000C2911D1B8
|
fb | VMware ESX | VMware VMFS | |
9198EFFC-31C0-11DB-8F78-000C2911D1B8
|
VMware reserved | |||
9D275380-40AD-11DB-BF97-000C2911D1B8
|
fc | VMware kcore crash protection | ||
A19D880F-05FC-4D3B-A006-743F0F84911E
|
fd | Linux | Linux RAID |
Da bei vielen Systemen eine Überführung von MBR- in GUID-Partitionen möglich ist, gibt es für viele GUID-Partitionstypen einen entsprechenden MBR-Partitionstyp. Auch bei der Verwendung von Hybrid-MBRs werden die entsprechenden Partitionen einmal mit GUID- und einmal mit dazu passendem MBR-Partitionstyp erstellt.
Konvertierung
Es besteht grundsätzlich die Möglichkeit, von der Master-Boot-Record-Partitionstabelle zur GUID-Partitionstabelle zu konvertieren, jedoch wird dabei genügend freier Platz zwischen MBR und erster Partition sowie nach der letzten Partition vorausgesetzt, um die nötige Datenstruktur für die GUID-Partitionstabelle aufnehmen zu können. Unter anderem das Programm GPT fdisk (besser bekannt als gdisk
) bietet diese Möglichkeit.[20] Auch die Überführung von einigen BSD-Disklabel-Partitionen in GPT ist damit möglich.
Begrenzungen
Die GPT verwendet Logical Block Addressing (LBA) mit 64 Bit umfassenden Einträgen, sodass – bei einer Sektorengröße von 512 Byte – Festplatten bis zu einer Gesamtkapazität von 8 Zebibyte adressiert werden können. Die maximale Anzahl möglicher Partitionen hängt von der Größe der Partitionstabelle ab, die laut Spezifikation mindestens für 128 Partitionen Platz bietet. Nicht alle Systeme bieten diese Möglichkeit, jedoch kann z. B. das Partitionierungswerkzeug gdisk
eine größere Partitionstabelle erzeugen.[21]
Hybrid-MBR
Ein Hybrid-MBR bezeichnet das Definieren einzelner Partitionen sowohl in der GUID-Partitionstabelle (GPT) als auch in der Partitionstabelle des Master Boot Record (MBR). Ein Zugriff auf die Partitionen ist dadurch sowohl über GPT als auch über MBR möglich, was Dual-Boot zwischen Betriebssystemen ermöglicht, die nur jeweils eine der beiden Partitionstabellen verwenden oder unterstützen.
Im MBR ist normalerweise nur eine den gesamten Datenbereich umfassende Schutzpartition enthalten, was als Schutz-MBR (englisch “protective MBR”) bezeichnet wird. Bei Hybrid-Partitionierung wird ein und dieselbe Partition sowohl in der GUID- als auch in der MBR-Partitionstabelle definiert: da der Master Boot Record dabei als Hybrid der eigentlichen GUID-Partitionstabelle auftritt, wird in diesem Fall die Bezeichnung „Hybrid-MBR“ verwendet.
Die Gefahr bei der Hybrid-Partitionierung ist, dass das Verändern nur einer der beiden Partitionstabellen zu groben Partitionierungsfehlern führen kann. Daher muss eine Hybrid-Partitionierung durch dafür vorgesehene Programme erfolgen und darf keinesfalls über Partitionierungswerkzeuge eines Betriebssystems, welches nur eine der beiden Partitionstabellen verwendet, verändert werden.
Die Anzahl der Hybrid-Partitionen ist auf vier gemeinsame Partitionen beschränkt. Das Definieren einer erweiterten MBR-Partition ist nicht möglich, da GPT keine erweiterten Partitionen unterstützt. Umgekehrt gibt es nur Platz für insgesamt vier primäre Partitionen in der Partitionstabelle des Master Boot Record. Da für EFI eine primäre Partition benötigt wird – die EFI System Partition (ESP) – stehen drei Hybrid-Partitionen für Betriebssysteme oder gemeinsame Datenpartitionen zur Verfügung. Es ist die einzig sichere Lösung, mit maximal vier Hybrid-Partitionen (inklusive der ESP) den gesamten nutzbaren Speicherplatz zu partitionieren.
Mit manueller Partitionierung ist es dennoch möglich, nicht alle Partitionen als Hybrid-Partition abzubilden: dann kann zwar das Betriebssystem, das nur den MBR auswertet, nicht auf alle Partitionen zugreifen, jedoch ermöglicht es ausreichend viele gemeinsame Partitionen für einen Dual-Boot-Betrieb. Allerdings fällt in einer solchen Konfiguration der Schutz für GUID-Partitionen, welche nicht auch als MBR-Partitionen existieren, weg. Das Betriebssystem, das nur den MBR auswertet, sieht weiteren vermeintlich unpartitionierten und somit leeren Speicherplatz, der von keiner der MBR-Partitionen beansprucht wird. Es ist Sache des Anwenders, dem Betriebssystem nicht zu gestatten, von diesem Speicherplatz Gebrauch zu machen, da dieser in Wirklichkeit von weiteren GUID-Partitionen genutzt wird, somit Daten enthält und ein irrtümliches Überschreiben zu Datenverlust innerhalb der GUID-Partitionen führt.
Apple nutzt unter macOS (bis 2016 „OS X“ und bis 2012 „Mac OS X“) mit Boot Camp einen Hybrid-MBR. Wenn Windows gestartet wird, dann geschieht dies über ein Compatibility Support Module (CSM) der Apple-EFI-Firmware, sodass Windows wie bei einem PC mit BIOS die MBR-Partitionstabelle verwendet, nicht aber die GUID-Partitionstabelle. Wird jedoch macOS gestartet, so wird die GUID-Partitionstabelle genutzt. Das Festplattendienstprogramm von macOS erstellt automatisch einen Hybrid-MBR, sobald eine der Partitionen mit einem FAT32-Dateisystem formatiert wird und nicht mehr als insgesamt vier Partitionen auf dem Datenträger vorhanden sind.
Unterstützung in Betriebssystemen
Für Betriebssysteme, die auf der Itanium-Architektur (auch IA-64 für englisch Intel Architecture 64-Bit) aufbauen, ist die Unterstützung von GPT zwingend notwendig, da diese Rechner das Extensible Firmware Interface verwenden. Auch bei PCs setzte sich ab ca. 2005 zunehmend der nunmehr UEFI genannte BIOS-Nachfolger durch, sodass auch Betriebssysteme für die IA-32-Architektur des x86-Prozessors GPT unterstützen. Neben den entsprechenden Itanium-Versionen von FreeBSD, HP-UX, Linux, NetBSD, OpenVMS, Solaris und Windows, die GPT Firmware-bedingt unterstützen, wird spätestens seit der Ablösung des BIOS durch UEFI auch von allen x86-64-Versionen GPT unterstützt.
Seit der Umstellung der Apple-Macintosh-Rechner auf Intel-Prozessoren Anfang 2006 verwendet Mac OS X (seit 2016 „macOS“) ebenfalls GPT, da Intel-basierte Macs eine Apple-eigene EFI-Variante verwenden. Mac OS X Tiger (10.4, 2005) und neuer kann jedoch auch auf der PowerPC-Plattform GPT-Medien verwenden, Firmware-bedingt aber nicht davon starten.
Die Versionen von Windows XP, die noch für die 32-Bit-Intel i386-Architektur entwickelt wurden, können dagegen auf einer GPT-Festplatte nur mit Einschränkungen installiert und betrieben werden. Unter anderem lesen sie nur den MBR, nicht aber die GPT, um Partitionierungsdaten zu erhalten. Durch die Verwendung von hybriden Partitionstabellen können die jeweiligen Partitionen sowohl als MBR- als auch als GPT-Partition eingerichtet werden, allerdings stehen im MBR maximal drei primäre Partitionen zur Verfügung, da dieser nicht mehr als vier Einträge zulässt und die erste Partition bereits für die EFI-Firmware reserviert ist. Umgekehrt werden erweiterte Partitionen des MBR, die als Container mehrere logische Partitionen enthalten können, von GPT nicht mehr unterstützt.
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 partitionierten 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.[22] 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 bei der früher üblichen physischen Sektor-Größe von 512 Byte die 2-TB-Grenze nicht überschreiten konnten.[23] Da der Einsatz solcher Partitionen damals noch hauptsächlich bei Servern anzutreffen war, ergaben sich diese 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.[1]
OpenBSD unterstützt die Installation auf einer GPT-Partition eines x86_64-UEFI-Systems seit Version 5.9[24].
Weblinks
- An Examination of The Microsoft® Windows™ 7, 8 and 10 GPT 'Protective' MBR and EFI Partitions (englisch)
Einzelnachweise
- ↑ a b Thorsten Leemhuis: Wachstumsprobleme – Besonderheiten beim Zusammenspiel von Linux mit großen Festplatten. In: c’t. Band 2011, Nr. 4. Heise-Verlag, 31. Januar 2011, S. 170–172 (Artikel-Archiv [abgerufen am 2. Mai 2020]). „[…] das häufig als ‚BIOS-Nachfolger‘ deklarierte UEFI [wird] meist in einem Atemzug mit GPT genannt, obwohl sich letztere auch unabhängig davon nutzen lässt – GPT-taugliche Boot-Loader wie der noch junge Grub2 starten Linux problemlos ohne UEFI.“
- ↑ List of partition identifiers for PCs. Technische Universität Eindhoven, abgerufen am 18. April 2012 (englisch).
- ↑ uefi.org ( vom 15. April 2012 im Internet Archive) (U)EFI Specification (englisch)
- ↑ e09127r3 EDD-4 Hybrid MBR boot code annex. (PDF; 116 kB) Archiviert vom am 3. März 2012; abgerufen am 17. Januar 2023.
- ↑ Empfohlene Konfigurationen für UEFI-basierte Datenträgerpartitionen unter Windows 7 und Windows Server 2008 R2. Microsoft TechNet; abgerufen am 7. Juli 2015
- ↑ Was ist Windows RE? Microsoft TechNet; abgerufen am 4. Juli 2015
- ↑ Seite nicht mehr abrufbar, festgestellt im April 2018. Suche in Webarchiven) (
- ↑ onie.org
- ↑ man.cat-v.org
- ↑ vboot_reference/firmware/lib/cgptlib/include/gpt.h, ChromeOS-Quelltext von 23. Dezember 2010
- ↑ chromium.org
- ↑ freedesktop.org
- ↑ a b freedesktop.org
- ↑ c’t Hotline: Was ist „Rapid Start Technology“? aus Heft 7/2014, abgerufen am 9. Juli 2015
- ↑ gptfdisk auf sourceforge.com (englisch); abgerufen am 4. Juli 2015
- ↑ Apple Developer: disklabel man page (englisch), abgerufen am 12. Juli 2015
- ↑ MacZFS.org: Official Site for the Free ZFS for Mac OS (englisch), abgerufen am 9. Juli 2015
- ↑ Managing EFI Boot Loaders for Linux: Basic Principles (englisch), Rod Smith, abgerufen am 9. Juli 2015
- ↑ github.com
- ↑ Converting to or from GPT. Rod Smith (englisch); abgerufen am 12. Juli 2015
- ↑ GUID Partition Table. (Blog) UEFI Support, 26. Januar 2015, abgerufen am 23. Dezember 2018 (englisch): „Advantages of GPT; 3. Arbitrary number of partitions - depends on space allocated for the partition table … By default the GPT table contains space for defining 128 partitions. However if the user wants to define more partitions, he/she can allocate more space to the partition table (currently only gdisk is known to support this feature).“
- ↑ RAID-System: 4 TByte in einem Gehäuse, In: c’t Nr. 2/2009, S. 54
- ↑ Microsoft TechNet: GUID-Partitionstabelle
- ↑ OpenBSD 5.9. (englisch).