Key points
· FAT16 had a limit on the number of disk clusters it could track because it used 16-bit entries in its file allocation table. As hard drive sizes increased, FAT16 had to use progressively larger cluster sizes to manage them.
· A cluster is the smallest amount of disk space a file can occupy. Even a tiny file uses an entire cluster.
· On larger FAT16 volumes:
o A 512 MB partition could use 16 KB clusters.
o A 1 GB or 2 GB partition could use 32 KB clusters.
o Later versions could support 4 GB volumes using 64 KB clusters.
· This created substantial waste space ("cluster slack"). For example, thousands of very small text files could consume hundreds of megabytes because each file occupied a full 32 KB cluster regardless of its actual size.
· The irony was that buying a larger hard drive could make storage efficiency worse, meaning users lost more of the capacity they had paid for. The article notes that a 1 GB drive in the mid-1990s was extremely expensive, making this particularly frustrating.
The workaround
Users often partitioned their drives into several smaller volumes. Since FAT16's cluster-size limitation applied per partition, smaller partitions could use smaller clusters and waste less space. A 1 GB drive split into four 256 MB partitions could use 8 KB clusters instead of 32 KB clusters.
How it was fixed
· Microsoft introduced FAT32 with Windows 95 OSR2 in 1996, greatly improving efficiency and allowing much smaller clusters for larger volumes.
· FAT32 became mainstream with Windows 98.
· Eventually, NTFS became the standard Windows file system. NTFS still has some cluster slack, but it is far more efficient and can even store some small files directly in the Master File Table (MFT) without allocating separate clusters.
Bottom line: FAT16's design forced cluster sizes to grow as disk sizes increased, causing significant storage waste. Users often had to partition drives to avoid losing capacity until FAT32 and later NTFS solved most of the problems.