Support

Get help using our products.

How do I format a disk using FAT16 rather than FAT32 (or vice-versa)?

There is a common misconception that you can choose whether to format a disk using FAT12, FAT16 or FAT32 as you would choose, for instance, between HFS+ and NTFS, and that what you get depends on the partition type in the partition table. The situation, sadly, is not so simple.

You may be aware that disks are divided up into blocks (sometimes called sectors), and that filesystems typically use their own larger blocks made up of multiple sectors (for instance, HFS+ typically uses a block size of 4KB, which, with standard 512 byte sectors, means eight sectors to a filesystem block). In the case of FAT, the filesystem blocks are referred to as clusters, and it is the number of clusters that determines the type of FAT that is used on a disk.

According to the official documentation from Microsoft, FAT12 is used for disks of up to and including 4,084 clusters; FAT16 for disks of between 4,085 and 65,524 clusters, inclusive; and FAT32 for disks with 65,525 or more clusters. Unfortunately that isn’t the whole story, because a lot of buggy implementations exist in the wild, and so Microsoft recommends — and iPartition follows this recommendation — that the number of clusters be restricted so that it is at least 16 away from the boundary in each case, so:

FAT TypeNumber of clusters
FAT12Up to 4,068
FAT164,101 to 65,508
FAT3265,541 or greater

Now, the next thing you might ask is how big a cluster is. Cluster sizes are set as power-of-two multiples of the sector size, with a maximum size of 32KB (regardless of sector size). Thus you can choose the following cluster sizes based on the sector size of your disk:

Sector Size (bytes)Cluster Size
1248163264
5125121,0242,0484,0968,19216,38432,768
1,0241,0242,0484,0968,19216,38432,768n/a
2,0482,0484,0968,19216,38432,768n/an/a
4,0964,0968,19216,38432,768n/an/an/a
8,1928,19216,38432,768n/an/an/an/a

What does this mean in practice? Well, it means that you can choose FAT16 or FAT32 in some cases, but to do so you will need to specify a cluster size that means that the number of clusters falls into the ranges shown in the table above. If you choose a cluster size that means the number of clusters falls below 65,541, iPartition will try to use FAT16. If you choose a cluster size too large for FAT16 or FAT32, iPartition will truncate the number of sectors when it formats the disk, and you will have wasted space at the end of your partition.

In practice, unless you really need a particular type of FAT for some reason, we recommend letting iPartition work out what to do; it will generally prefer FAT32 where possible, as that’s the newer format and will waste less space by using larger than necessary clusters, and it will try to avoid wasted space at the end of the partition where possible too.


Posted by alastair at 2017-May-15 10:05:23 UTC.