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. Cluster size would go from 16K to 32K at 32GB causing more wasted space for smaller files which Microsoft did not want. Since Microsoft only used 21 of the 32 bits in FAT-32, the limit is 16K clusters x 2^21 = 32GB.
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 fix for this is 263044usa8.exe from Microsoft download. This fix claims to support 48 bit LBA, drives 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. With 4 bytes for each FAT entry and overhead, there can be only 4,177,920 clusters. Also some older programs can not handle clusters larger than 32KB. . . . Therefor . . . 4,178K clusters x 32.768KB per cluster = 137GB
137GB is also a BIOS limit where the system BIOS can only handle 28 bit LBA but not “large" 48 bit LBA.
- - - This
is also a limit on Windows XP-SP0 and Windows 2000-SP2 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
   
http://www.allensmith.net/Storage/HDDlimit/FAT16.htm
FAT12 - FAT16 - FAT32 File System
   
http://en.wikipedia.org/wiki/File_Allocation_Table
Limitations of FAT32 File System
   
http://support.microsoft.com/kb/184006
Windows NT 4.0 supports maximum of 7.8-GB system partition
   
http://support.microsoft.com/kb/224526
Fdisk Does Not Recognize Full Size of Hard Disks Larger than 64 GB
   
http://support.microsoft.com/kb/263044
Fdisk.exe may not be able to create a partition larger than 128 GB
   
http://support.microsoft.com/kb/327202
Description of the FAT32 File System in Windows XP
   
http://support.microsoft.com/kb/310525
- - - 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
   
http://support.microsoft.com/kb/314463
NTFS File System
   
http://en.wikipedia.org/wiki/NTFS
NTFS vs FAT
   
http://www.ntfs.com/ntfs_vs_fat.htm