What were the 2TB and 4-partition limits of legacy MBR?
The legacy Master Boot Record partitioning scheme in classical computing was constrained by a maximum addressable disk size of roughly two terabytes and a limit of four primary partitions per drive. Both restrictions stemmed directly from the fixed 512-byte layout of the first sector on a storage device and the 32-bit addressing fields designed during the early era of personal computers.
The Two-Terabyte Disk Size Limitation
The Master Boot Record (MBR) uses 32-bit values to store Logical Block Addressing (LBA) sector counts and starting offsets. With 32 bits, the maximum number of sectors that can be addressed is:
\[2^{32} = 4,294,967,296 \text{ sectors}\]
Because traditional hard drives and legacy BIOS interfaces standardized on a sector size of \(512\) bytes, the maximum addressable storage capacity is calculated as:
\[2^{32} \times 512 \text{ bytes} = 2,199,023,255,552 \text{ bytes}\]
In binary units, this equals \(2\text{ TiB}\) (tebibytes), or approximately \(2.199\text{ TB}\) in decimal terabytes. Any storage capacity beyond this boundary could not be addressed by standard 32-bit MBR partition entries, leaving the remaining space unusable on drives larger than \(2\text{ TiB}\) unless non-standard sector sizes such as \(4096\) bytes were used.
The Four-Primary-Partition Limitation
The MBR resides in the very first \(512\)-byte sector of a disk (LBA 0). Its internal structure is divided into three fixed regions:
- Bootstrap code: \(446\) bytes reserved for the bootloader program.
- Partition table: \(64\) bytes reserved for describing disk partitions.
- Boot signature: \(2\) bytes (
0x55AA) at the end of the sector to mark it as bootable.
Each partition entry in the partition table requires \(16\) bytes to store metadata such as the boot indicator, starting and ending Cylinder-Head-Sector (CHS) values, partition type, starting LBA, and total sector count. Dividing the \(64\)-byte partition table by \(16\) bytes per entry yields:
\[\frac{64}{16} = 4 \text{ primary partitions}\]
Workarounds and Modern Replacement
To work around the four-partition limit without breaking compatibility, the Extended Boot Record (EBR) mechanism was introduced. One of the four primary partition entries could be designated as an extended partition, which acted as a container holding a linked list of logical partitions. However, this workaround did not solve the \(2\text{ TiB}\) capacity ceiling.
Both limitations were eventually resolved by the GUID Partition Table (GPT) standard, which is part of the Unified Extensible Firmware Interface (UEFI) specification. GPT uses 64-bit LBA addressing and supports up to \(128\) primary partitions by default on Windows systems, removing the practical constraints of legacy MBR.