GPT: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
Added Partition Table Header structure |
|||
Line 13: | Line 13: | ||
|- |
|- |
||
|LBA -1||mirror of partition header on last addressable sector |
|LBA -1||mirror of partition header on last addressable sector |
||
|} |
|||
== Partition Table Header == |
|||
{| {{wikitable}} |
|||
|'''Offset'''||'''Length (bytes)'''||'''Description''' |
|||
|- |
|||
|0x0||8||Signature, can be identified by 8 bytes magic "EFI PART" (45h 46h 49h 20h 50h 41h 52h 54h) |
|||
|- |
|||
|0x8||4||GPT Revision |
|||
|- |
|||
|0xC||4||Header size |
|||
|- |
|||
|0x10||4||CRC32 checksum of the GPT header |
|||
|- |
|||
|0x14||4||Reserved |
|||
|- |
|||
|0x18||8||The LBA containing this header |
|||
|- |
|||
|0x20||8||The LBA of the alternate GPT header |
|||
|- |
|||
|0x28||8||The first usable block that can be contained in a GPT entry |
|||
|- |
|||
|0x30||8||The last usable block that can be contained in a GPT entry |
|||
|- |
|||
|0x38||16||GUID of the disk |
|||
|- |
|||
|0x48||8||Starting LBA of the GUID Parition Entry array |
|||
|- |
|||
|0x50||4||Number of Parition Entries |
|||
|- |
|||
|0x54||4||Size (in bytes) of each entry in the Parition Entry array - must be a multiple of 8 |
|||
|- |
|||
|0x58||4||CRC32 of the Partition Entry array. |
|||
|- |
|||
|0x5C||'''blocksize'''-0x5C||Reserved (should be zeroed) |
|||
|} |
|} |
||
Revision as of 23:10, 26 March 2020
GPT stands for GUID Partition Table. It is made to replace MBR partitioning.
Layout
LBA 0 | Protective Master Boot Record (PMBR). Holds a partition pointing to GPT to avoid accidental overwrite by old programs. |
LBA 1 | partition header, can be identified by 8 bytes magic "EFI PART" (45h 46h 49h 20h 50h 41h 52h 54h) |
LBA 2..33 | partition table entires |
...data on disk... | |
LBA -33..-2 | mirror of partition table |
LBA -1 | mirror of partition header on last addressable sector |
Partition Table Header
Offset | Length (bytes) | Description |
0x0 | 8 | Signature, can be identified by 8 bytes magic "EFI PART" (45h 46h 49h 20h 50h 41h 52h 54h) |
0x8 | 4 | GPT Revision |
0xC | 4 | Header size |
0x10 | 4 | CRC32 checksum of the GPT header |
0x14 | 4 | Reserved |
0x18 | 8 | The LBA containing this header |
0x20 | 8 | The LBA of the alternate GPT header |
0x28 | 8 | The first usable block that can be contained in a GPT entry |
0x30 | 8 | The last usable block that can be contained in a GPT entry |
0x38 | 16 | GUID of the disk |
0x48 | 8 | Starting LBA of the GUID Parition Entry array |
0x50 | 4 | Number of Parition Entries |
0x54 | 4 | Size (in bytes) of each entry in the Parition Entry array - must be a multiple of 8 |
0x58 | 4 | CRC32 of the Partition Entry array. |
0x5C | blocksize-0x5C | Reserved (should be zeroed) |
Utilities
The following utilities can handle GPT:
- parted, gparted, gdisk on Linux
- diskutil on MacOSX
- diskpart on Windows (Vista and upwards)
- gpt on MacOSX and BSDs.
Boot loaders
EFI firmware is capable of booting from a specific GPT partition, EFI System Partition which is basically a FAT32 partition. It should contain a slightly modified PE-executable, like ELILO. On old machines with legacy BIOS only you can use GRUB, or you can write a custom boot code.