FAT32

Updated: 07/13/2023 by Computer Hope

About FAT32

The existing FAT (file allocation table) file system was invented in 1977 as a way to store data on floppy disks for Microsoft stand-alone Disk Basic. Although originally intended for floppy disks, FAT was modified to be a fast and flexible system for managing data on both removable and fixed media. In 1996, Windows 95 OSR2 came out with FAT32, a new and improved FAT.

With new generations of large hard drives, the existing FAT data structures has reached the limit of their ability to support ever-larger media. FAT currently can support a single disk volume up to 2 Gigabytes in size. FAT32 is an enhancement of the FAT file system that supports larger hard drives with improved disk space efficiency.

System Requirements: FAT32 cannot be downloaded and is only available with Windows 95 OSR2 and Windows 98.

Features

FAT32 provides the below enhancements over previous implementations of the FAT file system:

Supports up to 2 terabytes in size.

FAT32 uses space more efficiently with smaller clusters (e.g., 4 kb clusters for drives up to 8 GB in size), resulting in up to 5% more efficient use of disk space relative to large FAT drives. The table below demonstrates the cluster size for various sizes of hard drives. As shown, a 32 GB drive or larger supports the same cluster size as FAT16.

Drive Size Default Cluster Size
Less than 512 MB 512 Bytes
< = 8 GB 4 Kilobytes
< = 16 GB 8 Kilobytes
< = 32 GB 16 Kilobytes
> = 32 GB 32 Kilobytes

More robust. FAT32 can relocate the root directory and use the backup copy of the FAT instead of the default copy. The boot record on FAT32 drives was expanded to include a backup of critical data structures, so they are less susceptible to a single point of failure.

More flexible. The root directory of a FAT32 drive is now an ordinary cluster chain, so it can be arbitrarily larger and located anywhere on the drive. FAT mirroring can be disabled, allowing a copy of the FAT other than the first to be active. These features allow for dynamic re-sizing of FAT32 partitions.

Note

While the FAT32 design allows for this compatibility, it cannot be implemented by Microsoft in the initial release.

Compatibility

For compatibility with existing applications, networks, and drivers, FAT32 was implemented with as little change as possible to Windows 95's existing architecture, internal data structures, APIs (application programming interface), and on-disk format. However, because 4 bytes are now required to store cluster values, many internal add-on disk data structures and published APIs fail on FAT32 drives. Most applications are unaffected by these changes. Existing utilities and drivers should continue to work on FAT32 drives. However, MS-DOS block device drivers (e.g., ASPIDISK.SYS) and disk utilities for these need to be revised to support FAT32 drives.

Microsoft's bundled disk utilities (format, fdisk, Defrag, MS-DOS ScanDisk, Windows ScanDisk, and DriveSpace) were revised to work with FAT32. Microsoft has worked with the leading device driver and disk utility vendors to support FAT32.

Performance

For most users, FAT32 has a negligible performance impact. Some applications may see a slight performance gain from FAT32. In other applications, particularly those heavily dependent on large sequential write operations, FAT32 may result in a modest performance degradation. The overall effect on raw disk performance is less than 5%, however, and the overall impact on application performance as measured by Winstone is typically less than 1%.

Creating FAT32 drives

In OEM Service Release 2, if you run the fdisk utility on a large system with a drive over 512 MB, it asks whether to enable large disk support. If you answer yes, any partition you create that's greater than 512 MB is marked as a FAT32 partition.

Why not add NTFS to Windows 95?

NTFS (NTFS file system) is an advanced file system, with support for many features not present in FAT32, including per-file compression, security, and transitioning. It is not feasible to implement NTFS in the memory and compatibility constraints of the Windows 95 platform. Windows 95 still supports real mode MS-DOS for booting and running some MS-DOS-based games. Adding NTFS support to the MS-DOS kernel would have required a significant amount of MS-DOS memory, and that would have precluded many MS-DOS mode games and applications. Protect-mode only support for NTFS would not have allowed Windows to boot from an NTFS volume.

Technical implementations

Because of the compatibility considerations described above, the implementation of FAT32 involved little change to Windows 95. The Major differences between FAT32 and earlier implementations of FAT are as follows:

Two new partition types are defined: OxB and OxC. Both indicate FAT32 volumes; Type OxC indicates a FAT32 partition that requires LBA (large block addressing) (extended INTI3 support).

The boot record on FAT32 drives requires 2 sectors (due to expansion and addition of fields in the BPB). As a result, the number of reserved sectors on FAT32 drives is higher than on FATI6, typically 32. This area allows two complete copies of the boot record to be stored, and a sector, where free space count and other file system information is stored.

The FAT is now larger, because each entry now takes up 4 bytes and there are typically many more clusters than on FAT16 drives.

The root directory is no longer stored in a fixed location.

A pointer to the starting cluster of the root directory is stored in the extended BPB.

The on-disk format directory entries are unchanged, except that the two bytes previously reserved for extended attributes now contain the high order word of the starting cluster number.

MS-DOS APIs that rely on an intimate knowledge of the file system layout fail on FAT32 drives. For instance, GetDPB (int21 h, function 32h), Int 25/26h Absolute disk read/write, and most of the Int 21 h, function 440Dh IOCTLs fail on FAT32 drives. New forms of these APIs are provided in OEM (original equipment manufacturer) Service Release 2, which work on all FAT drives.

Win32 APIs are not affected by FAT32, except for one additional API called GetFreeSpaceEx() for determining the true free space on a FAT32 volume.

FAT32 FAQ

Which operating systems come with FAT32?

Windows 95 OSR2, Windows 98, Windows Me, Windows 2000, and Windows XP.

Can I download FAT32?

FAT32 cannot be downloaded.

Can FAT32 be converted back to FAT16?

Unfortunately, it cannot be converted without erasing all information on the hard drive. To remove FAT32 and re-initialize FAT16, you must fdisk the hard drive, delete all partitions, and recreate without using extended support (FAT32).

Does Windows NT support FAT32?

No