Understanding The Protective MBR In Windows XP


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 OffsetField LengthSample Value1Field Name and Definition
0x01BE1 byte0x00Boot Indicator. Must be set to 0x00 to indicate that this partition cannot be booted.
0x01BF1 byte0x00Starting Head. Matches the Starting LBA of the single partition.
0x01C01 byte0x02Starting Sector. Matches the Starting LBA of the single partition.
0x01C11 byte0x00Starting Cylinder. Matches the Starting LBA of the GPT partition.
0x01C21 byte0xEESystem 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.
0x01C31 byte0xFFEnding 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.
0x01C41 byte0xFFEnding 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.
0x01C51 byte0xFFEnding 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.
0x01C64 bytes0x01000000Starting LBA. Always set to 1. The Starting LBA begins at the GPT partition table header, which is located at LBA 1.
0x01CA4 bytes0xFFFFFFFFSize 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.


Back To The Top

Bud's CDs FREE MP3s     Alphabetical Index Of Everything In This Site