Understanding the 2 TB Limit in Windows Storage
“Why can’t I have a drive bigger than 2 TB?”
This is a common question. And as storage has gotten bigger and cheaper, I see it more and more. So let’s take a few minutes to talk about the mysterious 2 TB limit.
There are actually three different 2 TB limitations that are commonly hit...
- Partition size
- Number of clusters
- SCSI goo
Partition Size Limitation
The partition size is pretty straight forward. On an MBR (Master Boot Record) disk, the locations where the partition sizes are stored are only 4 bytes long. Since this is in hexadecimal, the largest value we can stuff in there is all F’s. So the max value would 4,294,967,295 in decimal.
FF FF FF FFh = 4294967295d
This maximum partition size is not in bytes, it is in number of sectors. Since currently sectors are limited to 512 bytes, the maximum size ends up being 2 TB.
4,294,967,295 sectors * 512 bytes/sectors = 2,199,023,255,040 bytes or 2TB.
Number of Clusters
The second limitation is harder to spot. It is a limitation of NTFS. NTFS is limited to (2^32 -1) clusters….no matter what. The smallest cluster size possible is 512 bytes (1 sector). So again the math leaves us at 2,199,023,255,040 or 2TB.
(2^32)-1 = (4,294,967,296)-1 = 4,294,967,295 clusters
4,294,967,295 clusters * 512 bytes/cluster = = 2,199,023,255,040 bytes or 2TB
Here is a quick reference chart to help you see the maximum NTFS size for each cluster size.
Cluster size |
NTFS Max Size |
512 bytes |
2,199,023,255,040 (2TB) |
1024 bytes |
4,398,046,510,080 (4TB) |
2048 bytes |
8,796,093,020,160 (8TB) |
4096 bytes |
17,592,186,040,320 (16TB) Default cluster size |
8192 bytes |
35,184,372,080,640 (32TB) |
16384 bytes |
70,368,744,161,280 (64TB) |
32768 bytes |
140,737,488,322,560 (128TB) |
65536 bytes |
281,474,976,654,120 (256TB) |
Cluster size really depends on your needs. While 512 is fine if you just have a bunch of tiny files, it isn’t as efficient for say a volume with just SQL DBs. Also, a tiny cluster size can adversely affect VSS. But that is a topic for another time.
SCSI Goo
This is by far the hardest to understand as it requires some basic SCSI knowledge. Microsoft Windows operating systems support two different SCSI standards when it comes to reads and writes. There is a third but it is very old and is mostly just used on tape devices. So let’s just forget about that one and stick to the two that are relevant.
These two standards are Read10/Write10 and Read16/Write16. This all has to do with the way the CDB (Command Descriptor Block) is structured.
Read10/Write10 – This standard reserves bytes 2-5 to define the LBA (Logical Block Address). Think of LBA as sector numbers….it makes it easier on your brain. So we have 4 bytes that can define the addressable sectors. Just like in the ‘partition size limitation’ we are back to dealing with a 4 byte number used to define all the addresses on the drive.
FF FF FF FFh = 4294967295d
And just like before, the above is just the possible number of address (number of sectors). Multiply by the standard sector size of 512 bytes and we get…
4,294,967,295 sectors * 512 bytes/sectors = 2,199,023,255,040 bytes or 2TB.
What this all means is that when Windows is using the Read10/Write10 standard, then the biggest drive that will be supported is 2TB.
Read16/Write16 – Sometimes called LBA64 by some vendors, this standard reserves bytes 2-9 to define the LBAs. That would be 8 bytes, each byte being 8 bits in size. Now here is where we start getting into some really big numbers. The approximate size comes out to be around 8ZB (zettabytes). Here’s a quick chart to put it in some perspective.
- 1024KB = 1MB (megabyte)
- 1024MB = 1GB (gigabyte)
- 1024GB = 1TB (terabyte)
- 1024TB = 1PB (petabyte)
- 1024PB = 1EB (exabyte)
- 1024EB = 1ZB (zettabyte)
So it is going to be a while before we have to worry about running into the limitation of Read16/Write16.
Exceeding the limitations
Each limitation has a way of getting around it. Otherwise we’d still be stuck at 2TB.
Partition size limitation – There are actually two ways around this. The first way is to convert your disks to dynamic disks and create volume sets. This functionality has been around since Windows 2000. This doesn’t really allow you to increase the partition size. What it does is give you the ability to chain your partitions together to form larger volumes. So I could use two drives of 2TB and create a volume of roughly 4TB in size.
The second method to bypass the partition size limitation is to use a GPT (Guid Partition Table) configuration. In Windows 2003 SP1 Microsoft introduced its implementation of the GPT. A disk configured to be GPT rather than the MBR style would have a 32 sector partition array instead of a tiny 64 byte partition table.
NOTE: 32 sectors is equal to 16,384 bytes
Comments
- Anonymous
January 01, 2003
Yes. GPT disks do not store partition length in a 4 byte field like MBR disks do. GPT disks use an 8 byte field. So the partition size can be in the 'zettabytes'. So the limitation moves from the partition style to the limitation of the file system.NTFS is currently limited to 256 TB for a single volume. - Anonymous
January 01, 2003
<I've read several places that Windows doesn't support sector sizes greater than 512 bytes. However I've been using this config for a while with no adverse affects. Theoretically, Windows should be able to boot from this volume as well should it not?>There are 4k sector drives popping up in the marketplace but they are still the minority. So far on the drives that I've tested, I haven't seen any issues. One of the concerns that I've read about comes from people using them on Windows XP systems. Windows XP aligns the first partition to offset 32256 by default. This puts the partition boundary inside of one of the 4k sectors....leading to split i/o. This doesn't keep it from functioning. It just causes a performance hit. Drives like the Western Digital 4k sector drives have a utility to use to create your partitions so they align correctly to avoid the split i/o issue. - Anonymous
January 01, 2003
To G North,You can chain your drives together as a spanned volume depending on what edition of Win7 you are using. As I recall only Pro/Enterprise/Ultimate will allow you to. Just make all the disks dynamic and create a big volume set.Keep in mind, that if ANY of the disks in the volume set fail, you will lose the entire set. So make good backups. - Anonymous
January 01, 2003
To Zhero,That is per partition. However, most people just use a single partition. Also, as I recall the field that holds the 'starting point' for the partition is also only 4 bytes. So you end up bumping into that limitiation as well. If you made the first partition slightly smaller than 2TB, then you should be able to make a second partition that will use the rest. - Anonymous
January 01, 2003
"Since currently sectors are limited to 512 bytes"That is not actually true. I currently have a 7.5TB partition on a Basic Disk running on Windows 2000 Server. This is a Promise RAID which allows the logical disk to be formatted with 4096byte sectors. Note that this is a data disk, not a boot or system disk.From what I gather 4096byte sectors aren't officially supported by Microsoft, but I haven't had any problems. Can you elaborate on why MS puts the limit on sector size at 512bytes perhaps? Two limitations I have read about are that Dynamic Disks don't support a sector size other than 512 and that file compression can't be used on disks with a sector size other than 512. Besides that are there any other pitfalls?Chris McFarling - Anonymous
January 01, 2003
"Since currently sectors are limited to 512 bytes"Can you elaborate on that? I currently have a Promise VTrak 12110 RAID running on a Windows 2000 Server machine. The RAID is a 7.5TB basic disk (it's not a boot or system partition). The Promise RAID config allows a sector size of 4096 bytes, which is how I have formatted it. That along with a 4096 cluster size should allow for a volume of 16TB.I've read several places that Windows doesn't support sector sizes greater than 512 bytes. However I've been using this config for a while with no adverse affects. Theoretically, Windows should be able to boot from this volume as well should it not?Chris McFarling - Anonymous
January 01, 2003
I posted a comment/question here and it never appeared. After a couple days I tried again and it still did not appear. Now I see that the one comment from someone else that was here is gone. Are you not accepting comments on this blog or is there a glitch? Obviously this message is not intended to be posted as a comment. I'm just hoping the moderator intercepts it and can respond.Chris McFarlingmcfly09@hotmail.com - Anonymous
January 01, 2003
"In theory, the maximum NTFS volume size is 2^64 clusters." - http://technet.microsoft.com/en-us/library/cc938937.aspx2^32-1 clusters is current NTFS implementation (ntfs.sys?) limit.Conversion from FAT32 to NTFS will give 4KB cluster if the partition was created and formatted by Windows XP or later or by program with proper aligning and if FAT32 cluster was 4KB or more.Igor P. LeykoMS MVP - Windows System & Performance - Anonymous
January 01, 2003
Thanks for commenting Bill. Actually you can boot to a GPT disk if you are using Windows 7. There are a couple of conditions however. Your hardware needs to support UEFI and your OS needs to be 64bit.Robert - Anonymous
January 01, 2003
NOTE: This is a three year old blog post that I did before 4k drives really started to become popular. If you want to read about 4k drives, I published an article on the Windows IT Pro site about it.windowsitpro.com/.../promise-advanced-format-hard-drivesAlso, I didn't write about booting because that's outside the scope of my posting. This posting was simply about the various things in Windows storage that you bump into while trying to push past 2 TB. - Anonymous
January 01, 2003
In response to Igor Leyko, yes, you can align in such a way that later you converting to NTFS will not stick you with 512b clusters. However, it requires that you know about it beforehand. Most folks are just going with the defaults. - Anonymous
July 28, 2010
I have a question: Whether 4 bytes sector address is allocate independently in a sigle partition or a physical hard disk ?e.g. If I have a 3TB hard disk and separate into 2 partitions each is smaller then 2TB (drive D and drive E). Can I use the hold storage in windows ? - Anonymous
August 12, 2010
Would like to use a 4 hdd x 1TB = 4TB in raid 0 w/ windows 7. When will this be supported? Not savy enough to tweak my way around the limitations of 2TB. - Anonymous
May 29, 2012
So how do you "The second method to bypass the partition size limitation is to use a GPT (Guid Partition Table) configuration" ??? - Anonymous
October 10, 2012
The comment has been removed - Anonymous
June 19, 2013
Even the title of this article is misleading .. there IS no '2Tb' limit ... Limitations are limits on number of clusters .. and because the size of a cluster can be any of a large number of possibilities, that 'cluster number' is the limiting factor. Double the cluster size and you get about twice the drive-size. On the other hand , the topic of 'bootability' is not even addressed here , NOR is the topic of RAID systems , nor is the topic of how the manufacturing process of makind HDD's often is PHYSICALLY SET to be 4k (4096) .. But because programs etc often REQUIRE 512 , modern drives actually EMULATE '512' for that reason .. That is why when faced with need to format a 2Tb drive you are offered many possible cluster sizes .. where ALL of them (except 4096) are EMULATED inside the drive.Things do get complicated , yes, but it's not right that the issue of bootability is not addressed here, for that is often the major concern of the user. - Anonymous
October 17, 2013
Thanks Robert for giving me a clear understanding of the 2TB limit.I have only a basic knowledge of hard Drives, so its good to know these things.Jim - Anonymous
October 27, 2014
Seem to be well written - thank You very much! - Anonymous
February 17, 2015
Mr. Mitchell, thank you for this explanation and your other blogs that you've linked to. What I'm trying to figure out is: can I take a 4tb drive and partition it into 2 2tb volumes? They have to be MBR (I think?), because I'm using Windows 2000 (don't ask!). Win2k's "disk manager" as well as several third-party partioners only show the 4tb disk as having 1678.02 gb unallocated, although I have a 2tb drive that shows up with 1863.01 gb - the 2tb (Seagate) drive registers more space than the 4tb (HGST) drive. I notice that 1678.02 gb seems to be what many people's larger drives display as - is there some significance to this number?
I'm not really concerned about making a single 4tb volume. I'd just like to be able to access the drive in some fashion. Your explanation above seems to indicate that that's possible even without gpt, or am I reading that wrong?
Thank you. - Anonymous
May 06, 2015
The comment has been removed - Anonymous
August 06, 2015
Hello Andy. Sorry I didn't see your comment until now. Unfortunately, the answer is no. In addition to the size limitation, the field we use for the starting point (aka relative sector) is also limited in the same fashion. It uses a 3 byte field as I recall. Now, what you could do is put this 4TB drive on a different computer that supports GPT and share the space on the network. Depending on what you doing, this might be a workaround for you. - Anonymous
August 06, 2015
Hi Mike. Funny you should ask that. Windows 10 includes a nice little backup/restore surprise. In addition to the File History that was introduced in Windows 8, you also have the option of using the backup/restore utility that was in Windows 7. So Windows 10 actually has two backup solutions inbox. - Anonymous
September 22, 2015
Quick question here. Lets say I wanted to buy 2 2tb HDDs for a total of 4tb. I plan on putting them in RAID 0 through my bios but only to use as storage, not a boot drive. Will there be a problem with that? My controller supports way more than 2tb... In case this doesn't make sense I want more than 2tb storage, not bootable disk! That's what my SSD is for. Thanks in advance!!! - Anonymous
January 04, 2017
Hi Robert. I have windows 7 64 bit and have my primary bootable drive as a 2 tb ssd. I then got a 4tb ssd for my secondary drive. the drive was formatted and initiated as a 4 tb and windows sees it as 4 tb. The problem arises when i actually start filling up that 4 tb ssd. The files get unreadable with the warning of it being unreadable and corrupted. My files are not corrupted since i downloaded new files from the source which in this case was itunes. Should i partition the 4 tb? Or why is it not allowing me to use and fill up the 4 tb ssd?