8

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:

  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?

  2. 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.

  • “when the problem could be more easily solved by simply formatting with a higher sector size?” Because you cannot. It’s up to the disk manufacturer to decide. Or any translation layers, which is what some USB enclosures do. – Daniel B Nov 3 '17 at 23:18
  • @DanielB 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? – Hashim Nov 4 '17 at 0:40
  • 1
    Some external hard drives already use 4K sectors to get around the 2 TiB limit for compatibility with XP, but possibly causing issues with software that rely on 512-byte sectors. See superuser.com/questions/852475/… – bwDraco Nov 4 '17 at 4:58
  • 1
    @Hashim That option in the Windows format dialog controls the cluster size, which is a filesystem construct. Basically, it controls how many consecutive fixed-size disk sectors are allocated together as the smallest indivisible unit of file storage. Depending on what you're storing you may desire larger or smaller clusters, and since you can't resize the sectors in order to change the cluster size you are actually changing the number of sectors backing each cluster. – BACON Nov 4 '17 at 6:16
9

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.

  • Wow, just as I thought I was starting to get to grips with the architecture of an MBR hard-drive, suddenly I'm realising I know virtually nothing. :/ So how do blocks and clusters fit in with the latter section of your question? – Hashim Nov 4 '17 at 1:05
  • @Hashim To be perfectly honest, I've yet to see a good definition of them; they're more or less interchangeable depending on who you ask. Sectors usually refer to the physical, blocks are usually logical (especially in *nix-world) while Windows filesystems (mostly FAT?) prefer "clusters". Different terminology for similar concepts. – Bob Nov 4 '17 at 1:08
  • to be precise many modern OSes does support MBR drives up to near 4TB, including Windows 7 and up – phuclv Nov 4 '17 at 2:41
  • @LưuVĩnhPhúc I believe the distinction is 64-bit OSes mostly do but 32-bit ones don't. It's still patchy enough that GPT is usually a better idea. – Bob Nov 4 '17 at 3:39
3

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).

  • I'm entirely confused on the first point, and how exactly it works. Specifically, why the disk would not be recognised correctly if it the limitation applies to partitions. Could you elaborate on it, or link to a source that does so? – Hashim Nov 4 '17 at 0:20
  • As for the second point, isn't this a standard option when formatting a HDD? For example, Windows includes the following dialogue: imgur.com/a/rL6RE. I've always assumed "allocation unit size" is synonymous with block size, and that setting it here when formatting a drive would format a drive with the selected block size. Is this not the case? – Hashim Nov 4 '17 at 0:22
  • This answer does seem to suggest that's the case. – Hashim Nov 4 '17 at 0:29
  • 1
    NTFS allocation size is not the same as on disk sector size. It is easy (and done by many (most?) file systems to use 4k multiples. Even when they need 8 sectors on disk to store those. – Hennes Nov 4 '17 at 0:41
  • So blocks and sectors aren't the same thing? – Hashim Nov 4 '17 at 0:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.