MBR max of 2TiB on each partition or on disk

mbrpartitioning

A quick point of clarification needed. With the MBR

Maketecheasier.com says

each partition can only go up to a maximum of 2TB in size

The Differences Between MBR and GPT

But IBM's Developerworks says

The MBR layout also limits the maximum size of disk that is supported
to approximately 2TB

Learn Linux, 101 : Hard disk layout

Which is correct?

*cross posted on stackoverflow

Best Answer

Each partition cannot be longer than 2TB. This is because 2TB (roughly) is the maximum size that can be specified by to bytes 9 through 12, which is the starting sector in LBA format. Then, bytes 13-16 can specify the size, which must be 4,294,967,295 sectors or smaller, which is 2,199,023,255,040 bytes if each sector is 512 bytes (which was the most widely supported standard size for a sector, throughout the time when MBRs were regularly used). 2TB is 2,199,023,255,552 bytes, so the actual limit (with standard sized sectors) is 2TB - 512 bytes. Assuming we accept that approximation, MakeTechEasier.com's claim (mentioned in the question) is correct.

Then, bytes 13-16 of the MBR can specify the size, which similarly must be 2,199,023,255,040 or smaller (making the same assumptions about sector sizes). So the actual limit of what an MBR can specify (using the most common standards) is 4TB - 1KB.

However, a person could not have 4 partitions that are 1TB each, because starting on the 3rd partition would not be possible. That is too confusing for easy marketing, so people generally just refer to 2TB as the limit before potential problems could creep into the mixture. To, to keep the story simple, IBM's Developerworks is probably just saying what is recommended for businesses who just want things to work well, without experiences inconveniences from new limits to keep track of when trying to squeeze out every possible bit. It's far simpler to say: MBR=up to 2TB=okay, bigger is supported by GPT.

Note that the limits I'm referring to are just referring to the values that are stored in the disk structures. I'm not making any particular statements about support by various operating systems or BIOS implementations. Software might use a "signed" number to keep track of things. Such software code would effectively be more likely to have a 2TB limit than a 4TB limit. The idea of having a disk space that is usable by a partition, but which is not able to be the starting location of a partition, might violate some basic assumptions by certain software (like the "fdisk" disk partitioner, and the "setup" operating system's installer), etc. So IBM's statement may also have been trying to describe the likely experience, taking into account the complexity caused by a need to be supported by disk limitations (how much data fits in a certain amount of space), operating systems (including drivers for certain disks), and BIOS implementations. Although the limit stated by IBM can theoretically be worked around, via software, the provided information may be the right advice for someone who wants to avoid problems.

Related Question