Question: The MBR partition table supports a “partition size” of 4,294,967,295 sectors. Assuming the standard 512-byte sector, this translates to a total limit of ?2,199,023,255,040 bytes = 2TiB, or just under 2.2TB.

Some sources refer to this as a “partition size”:

?

Because partition tables on master boot record (MBR) disks support only partition sizes up to 2TB…

…whereas others refer to it as the total capacity of the volume or disk and insist that it must be formatted as GPT in order to overcome that limitation:

?

In order for an operating system to fully support storage devices that have capacities that exceed 2 terabytes (2 TB, or 2 trillion bytes), the device must be initialized by using the GUID partition table (GPT) partitioning scheme.

With the above in mind:

  • 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?

  • 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?


  • N.B. I’ve spent a good few hours reading up on the information currently out there, both on and off SU, which means that I’ve digested most of the top results on Google and have not been able to find answers to these questions on them, which is why I’m asking here. For this reason, I’m aiming to avoid answers that simply cite those results, and am primarily looking for answers from someone with a good understanding of how the technology works.

    Answer: 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.