Making sense of the 2TB MBR partition limit

Solution 1:

Is the 2TiB limit a partition limitation, or a total disk/volume limitation? If it's the former, is it possible to increase the usable space of a disk by creating further partitions less than 2TiB on it? If not, why not?

A partition is defined by its offset from the beginning of the drive plus the size of the partition. You could, in theory, define a partition to start at a sector just under 2 TB and of a size at 2 TB, giving you almost 4 TB. In practice, support varies depending on OS.


Given that the 2TiB limitation is based on traditional 512-byte sectors, and that increasing the sector size significantly increases the maximum partition size, why is upgrading to GPT the standard advice for bypassing the limit when the problem could be more easily solved by simply formatting with a higher sector size? Are there reasons this approach isn't adopted instead?

You cannot simply "format" with a larger sector size (see the next section of this answer). It is heavily dependent on both the factory drive (physical) layout and the drive firmware. "Low level formatting" hasn't really been a thing for well over a decade, since drives started getting too complex for it.

I believe a 4k drive that actually reports 4k can be used to address more data with MBR, if we're purely considering the MBR "specifications". But this still requires support from the operating system. It probably works these days, but often isn't recommended because you still have issues with motherboard support (if it's a boot drive).

GPT is recommended because it's standard and well-supported. It removes the variables of probably quirkly motherboard firmware that no longer receives updates, of hardware that cannot be changed, etc.. It's also better in just about every way. Perhaps you should be asking yourself, "why not use GPT?". Usually it comes down to needing to support older OSes, or boot drives on older hardware.


I was always under the impression that the sector size is easily changeable when initially formatting a drive. For example, Windows' Disk Format has this: imgur.com/a/rL6RE. Is that not the same thing as sectors?

You're confusing physical disk sectors (which are usually 4k/AF now) with logical disk sectors (see LBA, still often reported as 512b for backwards compatibility) and filesystem allocation units.

Physical sectors are what's actually on the disk. They can be important for alignment reasons (it's inefficient to start a partition halfway through a physical sector, for example) but otherwise don't affect disk usage that much. You can almost view these as an implementation detail that helps the drive manufacturer.

Logical sectors are how the OS talks to the driver talks to the controller talks to the disk (via AHCI/SATA, for example). This depends on what the drive firmware reports, and more recently you do see some reporting their native 4k, but many (most?) still report 512b (known as "512e", for emulated) for compatibility with older systems.

Filesystem allocation units, e.g. in that NTFS formatting dialog, have little to nothing to do with physical or logical sectors. They're only used for record keeping within the filesystem, and even then there are filesystems that don't use a fixed allocation unit size. Some file systems specify them in multiples of logical sectors.

Solution 2:

Is the 2TiB limit actually a partition limitation, or is it a total disk/volume limitation?

Sort of the same. When the whole disk is not recognised correct at >2TiB, any sub part (partition) of that will automatically fail,

Given that the 2TiB limitation is based on traditional 512-byte sectors, and that increasing the sector size significantly increases the maximum partition size, why is upgrading to GPT the standard advice for bypassing the limit when the problem could be more easily solved by simply formatting with a bigger sector size?

It would solve that. Unfortunately most harddrives do not allow you to change the sector size. Tee last time I reformatted low level sectors was with 4GB SCSI drives (522 byte per sector mainframe stores to 512 bytes per sector PC style storage). And since that time (last millenium) is has gotten harder to change manufacturer set configurations on a disk.

Which means that in many cases you are stuck with either:

  • A 512 bytes per sector disk
  • A 4096 bytes per sector disk which insists that it is using 512 bytes sector, and lies even when you ask it about it.

Workarounds: - Use a 4k sector disk and an OS and firmware which support is. - Use a 4k sector disk and OS which knows that the drive lies. - Use a partition scheme which is not decades old. (e.g. GPT, slices, mac formatting... anything but MBR style).