2MB is the FAT-12 limit using one sector per cluster which is 4096 clusters and 512 bytes per sector. 4096 x 512. This is the system used on floppy drives.
32MB is the FAT-12 limit which is 4096 clusters with 16 sectors per cluster and 512 bytes per sector. 4096 x 16 x 512. File space is allocated in increments of one cluster even if the data size is only one byte. 16 sectors per cluster was deemed to be the practical maximum before FAT-16 was introduced.
512MB is a BIOS limit by using 4 bytes to identify the partition start. 8 bits for the partition ID, 4 bits unused, 4 bits for head, 6 bits for sector (no sector # 0) and 10 bits for cylinder. 16 head x 63 sector x 1024 cylinder x 512 bytes per sector = 528 MB decimal.
2GB is the FAT-16 limit where the maximum cluster count of 65536 x 32K per cluster = 2.147GB decimal. This limitation was fixed with the introduction of Windows 95B version and later which had FAT32 support. FAT-16/2GB is also the limit of earlier USB flash drive support.
4GB is a Windows limit for NT-4 only still using FAT16 and 64K cluster size. Service packs for NT-4 have addressed this problem.
8GB is a bios limit. To get past the 512MB limit, the bios and operating systems had started to use the unused 4 bits to allow 256 heads instead of only 16. This gave 256 head x 63 sector x 1024 cylinder x 512 bytes per sector = 8.456 GB decimal. To get beyond this limit, Int13h extensions are needed.
32GB is a limit imposed by Microsoft preventing Windows 2000 and Windows XP from creating volumes larger than 32GB using FAT-32 even though larger FAT-32 volumes can be mounted. Microsoft only used 21 of the 32 bits in FAT-32, the limited cluster size to 16K giving a maximum volume size = 2^21 x 16K = 32GB. A larger cluster size would cause more wasted space for smaller files. (Using more than than 21 bits would resolved that size limit.)
64GB is a limit for Windows 98 and 98SE caused by Fdisk.exe still using some 16 bit values internally to calculate drive sizes. The reported size is the remainder of the actual drive size divided by 64GB. Actual Mod(64GB). The FDISK.EXE that comes with WIN98SE can not handle drives larger than 64GB. However, the install procedure on the WIN98SE CD gets around that problem and properly handles drives up to 137GB using 22 bits in the FAT and 32K clusters. The fix for the bad FDISK.EXE is 263044usa8.exe from Microsoft download. NOTE: This fix does NOT support 48 bit LBA or drives larger than 137GB. WIN98SE will not load on partitions larger than 137GB.
137GB (FAT-32) is a Microsoft problem. Even though they claim to use up to 28 bits & 32K clusters to give 8TB, there are other limitations. Some older system tools like ScanDisk and Format are 16 bit and have a memory block maximum allocation size of 16 MB less 64 KB. Using one memory block for the FAT with 4 bytes for each FAT entry and 64KB overhead, there can be only 4,177,920 clusters allocated. Also some older programs can not handle clusters larger than 32KB. . . . Therefor . . . 4,178,920 clusters x 32,768 Bytes per cluster = 137GB
According to Microsoft's FAT32 spec, the cluster numbers are really only 28 bits and the upper 4 bits of a cluster number are "reserved". If that were the case then FAT32 could handle up to 1 Terabyte partition size with 4K clusters. Microsoft doesn't even adhere to their own spec.
137GB is also a BIOS limit where the system BIOS can only handle 28 bit LBA but not “large" 48 bit LBA.
28 bit LBA limit = 2^28 x 512 bytes per sector = 268,435,456 x 512 = 137,438,953,472 bytes
- - - This is also a limit on Windows XP-SP0 and Windows 2000-SP2 which failed to support 48 bit LBA and corrected on later versions of Windows.
2.2TB - 2,200GB is the current drive size limit using a 32 bit operating system. (2^32 x 512 bytes/sector = 2,199,023,255,552 bytes)
144PB - 144,000,000GB is the current drive size limit using 48 bit LBA. This is 1M times more than the 137GB, 28 bit LBA limit.
FAT16 File System
FAT12 - FAT16 - FAT32 File System
Limitations of FAT32 File System
Windows NT 4.0 supports maximum of 7.8-GB system partition
Fdisk Does Not Recognize Full Size of Hard Disks Larger than 64 GB
Fdisk.exe may not be able to create a partition larger than 128 GB
Description of the FAT32 File System in Windows XP
- - - Microsoft claims that FAT32 will handle up to 2 Terabytes (above)
- - - but only allows the use of 32 Gigabytes in XP (below)
Limitations of the FAT32 File System in Windows XP
48 bit LBA and limitataions of older systems
NTFS File System
NTFS vs FAT