DOS FAT12/16/32 filesystem

Updated: April 19, 2023

The limits for DOS FAT12/16/32 filesystems include:

Filename length
255 characters.
Pathname length
1024 characters, not including the mountpoint or the terminating NUL.
File size
4 GB − 1; uses a 32-bit filesystem format.
Directory size
Depends on the type of filesystem:
  • The root directory of FAT12/16 is special, in that it's pregrown and can't increase. You choose the size when you format, and is typically 512 entries. FAT32 has no such limit.
  • FAT directories are limited (for DOS-compatability) to containing 64 K entries.
  • For long (non-8.3) names, a single filename may need multiple entries, thus reducing the possible size of a directory.
Filesystem size
Depends on the FAT format:
  • for FAT12, it's 4084 clusters (largest cluster is 32 KB, hence 128 MB)
  • for FAT16, it's 65524 clusters (thus 2 GB)
  • for FAT32, you get access to 268435444 clusters (which is 8 TB)
Disk size
Limited by the disk driver and io-blk.

These filesystems don't really support permissions, but they can emulate them.