The Extensible Firmware Interface (EFI) specification requires that LBA 0 be reserved for compatibility code and a Protective MBR. The Protective MBR has the same format as an existing MBR, and it contains one partition entry with a System ID value of 0xEE. This entry reserves the entire space of the disk, including the space used by the GPT header, as a single partition. The Protective MBR is included to prevent disk utilities that were designed for MBR disks from interpreting the disk as having available space and overwriting GPT partitions. The Protective MBR is ignored by EFI; no MBR code is executed.
The following example shows a partial printout of a Protective MBR.
000001B0: 00 00 00 00 00 00 00 00 - 04 06 04 06 00 00 00 00 ................
000001C0: 02 00 EE FF FF FF 01 00 - 00 00 FF FF FF FF 00 00 ................
000001D0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
000001E0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................
000001F0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 55 AA ..............U.
Table 27.18 describes the fields in each entry in the Protective MBR.
Table 27.18 Protective MBR in GPT Disks
| Byte Offset | Field Length | Sample Value1 | Field Name and Definition |
|---|---|---|---|
| 0x01BE | 1 byte | 0x00 | Boot Indicator. Must be set to 0x00 to indicate that this partition cannot be booted. |
| 0x01BF | 1 byte | 0x00 | Starting Head. Matches the Starting LBA of the single partition. |
| 0x01C0 | 1 byte | 0x02 | Starting Sector. Matches the Starting LBA of the single partition. |
| 0x01C1 | 1 byte | 0x00 | Starting Cylinder. Matches the Starting LBA of the GPT partition. |
| 0x01C2 | 1 byte | 0xEE | System ID. Must be 0xEE to specify that the single partition is a GPT partition. If you move a GPT disk to a computer running Windows 2000 with Service Pack 1 or greater or Windows XP Professional, the partition is displayed as a GPT Protective Partition and cannot be deleted. |
| 0x01C3 | 1 byte | 0xFF | Ending Head. Matches the Ending LBA of the single partition. If the Ending LBA is too large to be represented here, this field is set to 0xFF. |
| 0x01C4 | 1 byte | 0xFF | Ending Sector. Matches the Ending LBA of the single partition. If the Ending LBA is too large to be represented here, this field is set to 0xFF. |
| 0x01C5 | 1 byte | 0xFF | Ending Cylinder. Matches the Ending LBA of the single partition. If the Ending LBA is too large to be represented here, this field is set to 0xFF. |
| 0x01C6 | 4 bytes | 0x01000000 | Starting LBA. Always set to 1. The Starting LBA begins at the GPT partition table header, which is located at LBA 1. |
| 0x01CA | 4 bytes | 0xFFFFFFFF | Size in LBA. The size of the single partition. Must be set to 0xFFFFFFFF if this value is too large to be represented here. |
1. Numbers larger than one byte are stored in little endian format, or reverse-byte ordering. Little endian format is a method of storing a number so that the least significant byte appears first in the hexadecimal number notation.