Flux rss

FAT16 and FAT32

The FAT16 file system

The first file system to be used on a Microsoft operating system was the FAT system, which uses a file allocation table. The file allocation table is actually an index which lists the content of the disk in order to record the location of the files on it. Since the blocks making up a file are not always stored contiguously on the disk (a phenomenon called fragmentation), the allocation table allows the file system structure to be maintained by creating links to the blocks making up the file. The FAT system is a 16-bit system that allows files to be identified by a name consisting of up to 8 characters and a 3 character extension, which is why this system is called FAT16.

To improve on this, the original version of Windows 95 (using the FAT16 system) was delivered with improved FAT management in the form of the VFAT (Virtual FAT) system. VFAT is a 32-bit system that allows file names of up to 255 characters in length. The programmers had to ensure forward compatibility, however, so that 16-bit (DOS) environments could still access these files. The solution was therefore to assign one name for each system. This is why it is possible to use long file names under Windows 95, but still access them under DOS.

The FAT file system is a 16-bit system, which means that cluster addresses can not be bigger than 16 bits. The maximum number of clusters that can be referenced with the FAT system is therefore 216, (65536) clusters. Now, since a cluster consists of a fixed number (4,8,16,32, ...) of sectors of 512 contiguous bytes, the maximum size of FAT partition can be determined by multiplying the number of clusters by the size of a cluster. With 32Kb clusters, the maximum size of a FAT partition is therefore 2GB.

Furthermore, a file can only occupy an integral number of clusters, which means that if a file occupies several clusters, the last cluster will only be partially occupied and the unoccupied space will be unusable. As a result, the smaller the cluster size, the less wasted space. It is estimated that a file wastes, on average, half a cluster, which means that on a 2 GB partition, 16KB will be lost per file…

The file allocation table

The File Allocation Table is a list of digital values that describes the allocation of the clusters of a partition or, in other words, the state of each cluster of the partition in which it is located. In fact, each cell of the allocation table corresponds to a cluster. Each cell contains a number that indicates if the cluster is used by a file and, if so, the location of the next cluster in the file. In this way, you end up with a FAT chain, a linked list of references pointing to the successive clusters up until the end of the file. Each FAT entry is 16- or 32-bits long (depending on whether it is FAT16 or FAT32). The first two entries store information about the table itself, while the following entries reference the clusters. Certain entries may contain values indicating the state of the specific cluster. For example, the value 0000 indicates that the cluster is not used, FFF7 marks the cluster as bad so that it will not be used, and values between FFF8 and FFFF specify that the cluster contains the end of a file. Each partition actually contains two copies of the table stored contiguously on the disk, so that it can be recovered if the first copy becomes corrupted.

The FAT32 file system

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 (ref: http://support.microsoft.com/default.aspx?scid=kb;en;184006). Since a FAT32 partition can contain many more clusters than a FAT16 partition, it is possible to reduce significantly the size of the clusters and thereby also limit wasted disk space. For example, with a 2GB partition, it is possible to use 4KB clusters with the FAT32 system (instead of 32KB clusters with FAT16), which reduces the wasted space by a factor of 8.

The trade-off for this is that FAT32 is not compatible with Windows versions prior to OEM Service Release 2. A system booting up with an earlier version will simply not see this type of partition.
Also, 16-bit disk management utilities, such as early versions of Norton Utilities, will no longer work correctly. In terms of performance, using a FAT32 system instead of a FAT16 system will result in a slight performance improvement on the order of 5%.

FAT16 or FAT32 file system?

As the number of clusters is limited, the maximum size of a partition depends on the size of each cluster. Let's take a look at the maximum partition size according to the cluster size and file system used:

Cluster size FAT16 file system FAT32 file system
(theoretical)
512 bytes 32 MB 64 MB
1 KB 64 MB 128 MB
2 KB 128 MB 256 MB
4 KB 256 MB 8 GB
(1 TB)
8 KB 512 MB 16 GB
(2 TB)
16 KB 1 GB 32 GB
(4 TB)
32 KB 2 GB 2 GB
(8 TB)

When you format a hard disk, you therefore need to decide carefully on the type of file system to use, and select the one that provides an amount of available space that is as close as possible to the desired size!

Last update on Thursday October 16, 2008 02:43:16 PM.

This document entitled « FAT16 and FAT32 » from Kioskea (en.kioskea.net) is made available under the Creative Commons license. You can copy, modify copies of this page, under the conditions stipulated by the licence, as this note appears clearly.

Results for FAT16 and FAT32

Mounting a partition FAT-16(MS-DOS) Mounting a partition FAT-16(MS-DOS) To mount a partition as from FAT 16, you just have to type the following: mount -t msdos /dev/hda1 /mnt/hdd The file system ms-dos (FAT-16) must be installed in the Kernel in filesystems... en.kioskea.net/faq/sujet-885-mounting-a-partition-fat-16-ms-dos
Network equipment - The hub A hub is an element of hardware for centralising network traffic coming from multiple hosts, and to propagate the signal. The hub has a certain number of ports (it has enough ports to link machines to one another, usually 4, 8, 16 or 32). Its only... en.kioskea.net/lan/concentrateurs.php3
The file system Even though hard drives can be very small, they still contain millions of bits and therefore need to be organised so that information can be located. This is the purpose of the file system. Remember that a hard drive is made up of several circular... en.kioskea.net/repar/filesys.php3

Results for FAT16 and FAT32

Formatting your drive with Fat32Formatting your drive with Fat32 Windows XP normally refuse to format a partition higher than 40 GB with FAT32. however this operation performs properly with NTFS The solution for this issue is to boot your installation CD and use the... en.kioskea.net/faq/sujet-676-formatting-your-drive-with-fat32
How to use a driver ODBC 32 BITS under the Window 2003(64 bits)?How to use a driver ODBC 32 BITS under the Window 2003(64 bits)? You have a Windows 2003 server (64-bits) and you want to use a 32 bits ODBC driver: one that is usually found in the administrative panel for ODBC on Windows or an external... en.kioskea.net/faq/sujet-707-how-to-use-a-driver-odbc-32-bits-under-the-window-2003-64-bits
Compiling/testing in 32-bit on Ubuntu X86-64Compiling/testing in 32-bit on Ubuntu X86-64 If you want compile a source code for testing purpose or to use it as a 32-bit binary,the main problem is that the headers of the standard library are not suitable for this purpose and that a... en.kioskea.net/faq/sujet-1137-compiling-testing-in-32-bit-on-ubuntu-x86-64

Results for FAT16 and FAT32

32gb pendrive not retrive the dataHello, i have 32 gb kingston pendrive it format with fat32 properly but folder copied to pendrive with content not showing at another pc media files also currupts en.kioskea.net/forum/affich-42111-32gb-pendrive-not-retrive-the-data
Unable to creat fat32 partition,Hello, sir my name is rahil, i have problem when i reinstall my pc operating window xp sp2, i format my partition completely. when i creat new partition i unable to option partition fat32. there is only ntfs. plz help me. what i do en.kioskea.net/forum/affich-35312-unable-to-creat-fat32-partition

Results for FAT16 and FAT32

Download PC Inspector File RecoveryPC INSPECTORâ„¢ File Recovery is a data recovery program that supports the FAT 12/16/32 and NTFS file systems. Finds partitions automatically, even if the boot sector or FAT has been erased or damaged Recovers files with the original time and... en.kioskea.net/telecharger/telecharger-72-pc-inspector-file-recovery
Download SoftPerfect File RecoverySoftPerfect File Recovery is a free and useful tool to restore accidentally deleted files from hard and floppy disks, USB flash drives, CF and SD cards and other storage media. It supports the popular file systems such as FAT12, FAT16, FAT32, NTFS and... en.kioskea.net/telecharger/telecharger-71-softperfect-file-recovery
Download Linux Display Driver - x86Linux Display Driver - X86 a driver for the graphic cards Geforce of version 8 is: 8800 Extremist, 8800 GTX, 8800 GTS, 8600 GTS, 8600GT, 8600 GS, 8500 GT, 8400 GS, 8400, 8300 GS, Quadro FX 1600M, Quadro FX 570M, Quadro NVS 320M.It introduces an... en.kioskea.net/telecharger/telecharger-872-linux-display-driver-x86

Results for FAT16 and FAT32

The NTFS file system The NTFS file system (New Technology File System) is based on a structure called the "master file table" or MFT, which is able to hold detailed information on files. This system allows the use of long names, but, unlike the FAT32 system, it is case... en.kioskea.net/repar/ntfs.php3
PC assembly - Inserting expansion cards Expansion cards are plugged into expansion slots. There are several types of slots: ISA slots run at 16 bits. Few computers still use this type of slot as the bus runs at a relatively slow speed. PCI slots run at 32 bits. This slot is used for most ... en.kioskea.net/assemblage/installation-cartes-extension.php3
Processes - rundll32 - rundll32.exe rundll32.exe (rundll32 stands for Run a DLL as a 32-bit application) is a Windows NT/2000/XP generic process used for loading dynamic link libraries (DLLs) in memory so that other programs can use them. The file that corresponds to this process is... en.kioskea.net/processus/rundll32-exe.php3