2

Total sectors field in MBR partition entry is 32 bits in length. This means that in case of 512 byte sector size, the maximum partition size is 2^32*512/10^12 TB. Am I correct that in case of 4Kn disks the maximum partition entry size is 2^32*4096/10^12, i.e. 17.59TB? If yes, then this would mitigate the need for GPT?

  • 2
    IIRC the max size was 2TiB and 16TiB, looking forward to someone giving a nice good well documented answer on this. As to mitigating the need for GPT.. GPT is a good thing. Or rather anything which is more capable than the ancient MBR system is a good thing. I'll admit that it is different and that it takes time to get used to new things, but using GPT wherever possible is probably a good thing. – Hennes Jan 26 '16 at 10:31
  • Hennes, you've summed it up pretty well. Note also the difference between IEEE-1541 (GiB, TiB, etc.) and SI (GB, TB, etc.) units, as described here. Sloppy use of those units causes confusion. (Your use was fine, Hennes, but the original question was unclear.) – Rod Smith Jan 26 '16 at 22:31
  • @Hennes I have nothing against GPT and I fully agree that it has many advantages over MBR. It was just a theoretical question and we both understand it the same way, i.e in case of 4Kn drives the max partition size is 16TiB(I used TB as a unit in my initial question) even with MBR. – Martin Jan 30 '16 at 11:28
  • 1
    Correct. For AF/4K drives and MBR the max size is 16TiB. Unless placed in some external USB cases. (Most are fine, some try to 'help clippy style' and do internal translation and present a 512b/sector drive 'for improved compatability'. – Hennes Jan 30 '16 at 14:37
  • 2
    This is simple math : For MBR the limit will be 2^32 * 4K = 16Tib. The 16 TB number is also mention in wikipedia. For GPT and a 64-bit OS the limit is 2^32 * 64KiB * 1024 * 1024 * 1024 = 256 TiB. You will need the right hardware on every component : motherboard - BIOS/UEFI, storage controller & driver (SATA AHCI/RAID or SAS), and all applications performing raw disk access need to not assume 512-byte sectors. – harrymc Jan 30 '16 at 17:17
6
+50

Yes, if the sector size is actually 4 KiB, the maximum MBR partition size will be 16 TiB. (By the is in those units I mean the power-of-1024 definition, of which the everyday power-of-1000 definition is an approximation.)

The size of an MBR partition is determined by the address of its first sector and its length in sectors, which are stored in the partition table. See the format at Wikipedia. Originally, sectors were named in Cylinder-Head-Sector (CHS) style, but that limited the disk to 224 sectors (because the CHS address was stored in a three-byte field). Since that was a real shame, Logical Block Addressing - as alluded to in this Microsoft article - was adopted. LBA sector addresses and the sector count are stored in four-byte fields, and (according to the Microsoft Windows 2000 Server Operations Guide) if these fields are present, OSes ignore the CHS fields. Note that the original ATA spec (not the MBR partition table records) only supported 28-bit sector addresses, so that's why you hear about smaller limits on old systems.

After a while, it was realized that a sector size of 512 bytes was a real downer because of this whole 2 TiB limit. For that and ECC/integrity reasons, the Advanced Format appeared (see here for more technical stuff). Drives that physically have 4KiB sectors will present themselves to the OS in one of two modes, 512e or 4Kn, usually depending on their jumper configuration. The e in 512e stands for emulation - it pretends that its sector size is only 512 bytes, and does some adjustment called read-modify-write when the OS gives it an updated sector. Read more about RMW in this Microsoft article. In 4Kn (n for native) mode, the drive assumes the OS understands 4KiB sectors and reports the real sector size in the disk geometry. On Windows, you can run fsutil fsinfo ntfsinfo followed by a drive letter to see the Bytes Per Physical Sector (real sector size) and the Bytes Per Sector (presented sector size). As of Windows 8, Windows supports native 4KiB sectors. You will only be able to use the extra space in 4Kn mode, since the OS knows nothing about the big sectors in 512e mode and therefore can't think about data beyond 2 TiB.

Since 4Kn multiplies the sector size by 8, the maximum partition size (which, again, is defined in terms of sectors) is multiplied by 8 to produce 16 TiB. That applies only to actual partitions; Windows has allowed larger volumes for a long time, which you can create with RAID. I'm sure other OSes have similar functionality. Do be careful, though, as naive disk formatters may refuse to create an MBR partition bigger than 2 TiB if the limitation is hard-coded.

All that said, GPT gives you nice things like being able to have more than four real partitions on one disk and some extra resiliency. You should switch to GPT.

  • I did not know about the larger volume option. Nice! – Hennes Feb 1 '16 at 11:49

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.