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 has since been 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.
A new generation of very large hard drives will soon be shipping, and the existing FAT data structures have finally 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.
FAT32 provides the below enhancements over previous implementations of the FAT tile system:
Supports up to 2 terabytes in size.
Uses space more efficiently. FAT32 uses 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 below chart is an example of what the cluster size would be for the various sizes of hard drives as you can see a 32 GB drive or larger will support 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 has also been 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 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, however, that while the FAT32 design allows for this compatibility, it will not be implemented by Microsoft in the initial release.
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, 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 will fail on FAT32 drives. Most applications will be 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) have been revised to work with FAT32. Microsoft has worked with leading device driver and disk utility vendors to support FAT32.
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 will ask whether to enable large disk support. If you answer yes, any partition you create that's greater than 5I2 MB will be marked as a FAT32 partition.
Why not add NTFS to Windows 95?
NTFS 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 the use of many MS-DOS mode games and applications. Protect-mode only support for NTFS would not have allowed Windows to boot from an NTFS volume.
Because of the compatibility considerations described above, the implementation of FAT32 involved very 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 (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 expanded reserved area allows two complete copies of the boot record to be stored there, as well as a sector, in which 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 is 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 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 will fail on FAT32 drives. New forms of these APIs are provided in OEM 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.
Which operating systems come with FAT32?
Can I download FAT32?
We are unaware of any location that you can download FAT32.
Can FAT32 be converted back to FAT16?
Unfortunately, it cannot be converted without erasing all the information that is on the hard drive. To remove the 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?