Why is FAT32 limited to just under 2^28 clusters?

With FAT16 the maximum partition size is 2GB when your maximum cluster size is 32K.

This is calculated by multiplying the number of addressable units by the cluster size.

(216 Allocation units) * (215 bytes/cluster) = 2 GiB

However with FAT32, when I do the same calculation I get a much larger number than the 8 TiB maximum when using 232 clusters.

(232 Allocation units) * (cluster size)

If I use a cluster size of 512 bytes, I've already arrived at 2 TiB.

In an XP TechNet article, Microsoft says

The maximum possible number of clusters on a FAT32 volume is 268,435,445, and there is a maximum of 32 KB per cluster, along with the space required for the file allocation table (FAT).

This puts the maximum cluster size at 228 - 11.

Why is the maximum number of clusters in FAT32 228-11 and not 232, given that it was 216 in FAT16?


FAT32 only uses 28 bits not 32. Four bits are "reserved for future use".

So, a FAT32 partition has a maximum cluster count of 268,435,455 (228-1)

Reference

Although VFAT was a clever system, it did not address the limitations of FAT16. As a result, a new file system (and not just better FAT management as was the case with VFAT) appeared with Windows 95 OSR2. This file system, called FAT32 uses 32-bit values for the FAT entries. In fact, only 28 bits are used, as 4 bits are reserved for future use.

With the appearance of the FAT32 file system, the maximum number of clusters per partition went increased from 65535 to 268,435,455 (228-1). FAT32 thus allows much bigger partitions (up to 8 terabytes). Although the maximum theoretical size of a FAT32 partition is 8 TB, Microsoft has voluntarily limited it to 32 GB on Windows 9x systems to promote NTFS