MBR Partitioning – Maximum Hard Drive Size

hard drivembrpartitioning

I am getting conflicting information about this …

At one place I read

The MBR on the other hand supports partitioning hard-disks of space which is up to ONLY 2 Terabytes (TB).
If you use a hard-drive greater than 2 TB in installation and
partitioning, you can be successful BUT the space beyond 2 TB will be
lost. For example, if you have 2.5 TB, the 0.5 TB will be lost.

However, it seems that the Partition size is limited by the 32-bit size of capacity field in the partition table. This is

(2^32)-1 x 512 byte = 2 TB.

But since the MBR has up to FOUR primary partitions and EACH one can be up tp 2TB, that should give a total of

4 x 2 TB = 8 TB

No ?

So a single hard-drive of say 7 TB can be fully used by an MBR partition scheme which means that the above quoted maximum for the Hard drive limit seems to be wrong.

But I see this 2 TB limit quoted a lot on the internet, but it would only be true if you allocated only one partition, but you have up to four.

Can someone explain this?

Best Answer

However, it seems that the Partition size is limited by the 32bit size of capacity field in the partition table. This is (2^32)-1 x 512 byte = 2TB.

Basically yes, if the sector size is 512 bytes.

But since the MBR has up to FOUR primary partitions and EACH one can be up tp 2TB, that should give a total of 4 x 2TB = 8TB. No?

No. MBR partition table stores LBA of first absolute sector in the partition and it uses 32 bits for this. This is true for any partition so even the last one must start within the first 2TiB of the disk.

From Wikipedia:

Since partitioning information is stored in the MBR partition table using a beginning block address and a length, it may in theory be possible to define partitions in such a way that the allocated space for a disk with 512-byte sectors gives a total size approaching 4 TiB, if all but one partition are located below the 2 TiB limit and the last one is assigned as starting at or close to block 232−1 and specify the size as up to 232−1, thereby defining a partition that requires 33 rather than 32 bits for the sector address to be accessed. However, in practice, only certain LBA-48-enabled operating systems […] actually support this.

But also:

For disks that present a sector size other than 512 bytes, such as USB external drives, there are limitations as well. A sector size of 4096 results in an eight-fold increase in the size of a partition that can be defined using MBR, allowing partitions up to 16 TiB (232 × 4096 bytes) in size. Versions of Windows more recent than Windows XP support the larger sector sizes, as well as Mac OS X, and Linux has supported larger sector sizes since 2.6.31 or 2.6.32, but issues with boot loaders, partitioning tools and computer BIOS implementations present certain limitations, since they are often hard-wired to reserve only 512 bytes for sector buffers, causing memory to become overwritten for larger sector sizes. This may cause unpredictable behaviour as well, and therefore should be avoided when compatibility and standard conformity is an issue.