How Does GPT Use 64-Bit LBA and Redundant Headers?
The GUID Partition Table, or GPT, is a modern disk partitioning standard that replaces the legacy Master Boot Record by using 64-bit logical block addressing and redundant headers. By expanding address space to 64 bits and storing backup partition metadata at the end of the disk, GPT overcomes the storage capacity limits and single-point-of-failure vulnerabilities of older partitioning schemes in classical computing.
Overcoming Capacity Limits with 64-Bit Logical Block Addressing
In legacy Master Boot Record (MBR) partitioning, disk sectors are addressed using 32-bit integers. With a standard sector size of 512 bytes, a 32-bit address space can reference at most \(2^{32}\) sectors, which caps addressable storage at \(2^{32} \times 512\text{ bytes} = 2\text{ TiB}\). As modern hard drives and solid-state drives grew beyond this threshold, MBR could no longer allocate space past the 2 TiB boundary.
GPT resolves this by using 64-bit Logical Block Addressing (LBA) for both the partition table headers and individual partition entries. A 64-bit address space supports up to \(2^{64}\) logical blocks. Assuming a 512-byte sector size, the maximum addressable capacity becomes:
\[2^{64} \times 512\text{ bytes} = 8\text{ ZiB}\]
For drives using 4,096-byte (4K) sectors, this limit scales to \(64\text{ ZiB}\). This vast address space ensures that storage capacity is effectively constrained by physical hardware and operating system limits rather than the partition table format itself.
Eliminating Single Points of Failure with Redundant Headers
MBR stores all partition metadata in a single 512-byte sector at LBA 0. If that sector is overwritten or corrupted due to hardware failure, power loss, or software bugs, the operating system loses track of every partition on the drive.
GPT mitigates this risk by maintaining two copies of the partition table metadata:
- Primary GPT Header and Table: Located at the beginning of the disk, starting at LBA 1 (immediately following the protective MBR at LBA 0).
- Backup GPT Header and Table: Located at the very end of the disk, with the backup header residing in the final sector (LBA \(-1\)) and the backup partition entry array directly preceding it.
Each GPT header contains fields pointing to its own LBA, the LBA of the alternate header, and the starting LBA of the partition entry array. If the primary header or partition table becomes corrupted, firmware or recovery tools can read the backup header at the end of the disk to restore the partition layout.
Integrity Verification via CRC32 Checksums
Redundant headers alone cannot tell a system which copy is valid if the two differ. To solve this, GPT embeds 32-bit Cyclic Redundancy Check (CRC32) checksums in both the primary and backup headers.
Each header stores two distinct checksums: one covering the GPT header itself and another covering the entire partition entry array. During boot or disk initialization, the system computes the CRC32 values and compares them against the stored checksums. If the primary copy fails verification, the system automatically falls back to the backup copy, verifies its CRC32 checksums, and can use it to repair the damaged primary structures.
Protective MBR for Backward Compatibility
To prevent legacy utilities that only understand MBR from
misinterpreting a GPT disk as unpartitioned space, GPT places a
protective MBR at LBA 0. This sector contains a single partition entry
of type 0xEE spanning the entire disk (or up to the 2 TiB
MBR limit). Legacy tools see the drive as fully occupied and avoid
overwriting GPT data, while GPT-aware operating systems and UEFI
firmware ignore the protective MBR and proceed directly to the primary
GPT header at LBA 1.