File Allocation Table: Difference between revisions

Content deleted Content added
m Reverted 1 edit by 65.254.12.39 (Talk) to last version by 82.95.198.250. (TW)
FAT32: GiB with space
Line 142:
In order to overcome the volume size limit of FAT16, while still allowing DOS [[real mode]] code to handle the format without unnecessarily reducing the available [[conventional memory]], Microsoft implemented a newer generation of FAT, known as '''FAT32''', with cluster values held in a 32-bit field, of which 28 bits are used to hold the cluster number, for a maximum of approximately 268 million (2<SUP>28</SUP>) clusters. This allows for drive sizes of up to 8 [[tebibyte]]s with 32KB clusters, but the boot sector uses a 32-bit field for the sector count, limiting volume size to 2 TiB on a hard disk with 512 byte sectors.
 
On Windows 95/98, due to the version of Microsoft's [[SCANDISK]] utility included with these operating systems being a 16-bit application, the FAT structure is not allowed to grow beyond around 4.2 million (< 2<SUP>22</SUP>) clusters, placing the volume limit at 127.53 [[gibibyte|GiB]]s.<ref name=MSKB184006>{{cite web | url=http://support.microsoft.com/kb/184006/en-us | title=Limitations of FAT32 File System | publisher=Microsoft Help and Support | date=2004-12-16 | accessdate=2006-10-14 }}</ref> A limitation in original versions of Windows 98/98SE's Fdisk utility causes it to incorrectly report disk sizes over 64GiB64 GiB.<ref name=MSKB263044>{{cite web | url=http://support.microsoft.com/kb/263044 | title=Fdisk Does Not Recognize Full Size of Hard Disks Larger than 64 GB | publisher=Microsoft Help and Support | date=2007-01-27 | accessdate=2007-03-08 }}</ref> A corrected version is available from Microsoft, but it cannot partition drives larger than 512GiB <ref>[http://support.microsoft.com/?kbid=280737 Fdisk.exe Unable to Partition Drives Larger Than 512 Gigabytes]</ref>. These limitations do not apply to Windows 2000/XP except during Setup, in which there is a 32GiB32 GiB limit.<ref name=MSKB314463>{{cite web | url=http://support.microsoft.com/kb/314463/en-us | title=Limitations of the FAT32 File System in Windows XP | publisher=Microsoft Help and Support | date=2002-09-04 | accessdate=2007-01-24 }}</ref> Windows Me supports the FAT32 file system without any limits.<ref>{{cite web | url=http://www.allensmith.net/Storage/HDDlimit/FAT32.htm | title=Windows XP/2000 FAT32 Formatting Limit | publisher=allensmith.net | accessdate=2007-04-08 }}</ref> However, similarly to Windows 95/98/98SE there is no native support for 48-bit LBA in Windows ME, meaning that the maximum disk size for ATA disks is 127.6GiB6 GiB, the maximum size of an ATA disk using the previous long-standard 28-bit LBA.
 
FAT32 was introduced with Windows 95 OSR2, although reformatting was needed to use it, and [[DoubleSpace#DriveSpace in Windows 95|DriveSpace 3]] (the version that came with Windows 95 OSR2 and Windows 98<!-- what about ME? -->) never supported it. Windows 98 introduced a utility to convert existing hard disks from FAT16 to FAT32 without loss of data. In the NT line, native support for FAT32 arrived in [[Windows 2000]]. A free FAT32 driver for [[Windows NT 4.0]] was available from [[Winternals]], a company later acquired by Microsoft. Since the acquisition the driver is no longer officially available.
 
Windows 2000 and [[Windows XP]] can read and write to FAT32 file systems of any size, but the format program included in Windows 2000 and higher can only create FAT32 file systems of 32GiB32 GiB or less. This limitation is by design and according to Microsoft was imposed because many tasks on a very large FAT32 file system become slow and inefficient.<ref name=MSKB184006/><ref name="TechNet on FAT32">Chen, Raymond (2006). [http://www.microsoft.com/technet/technetmag/issues/2006/07/WindowsConfidential/ Microsoft TechNet: A Brief and Incomplete History of FAT32]. ''TechNet Magazine'' July 2006''.</ref> This limitation can be bypassed by using third-party formatting utilities or by using the built-in FORMAT.EXE command-line utility.<ref>[http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm Fat32Format] - Windows program for formatting disks as FAT32 beyond the 32GB32 GB limit.</ref><ref>[http://www.gearhack.com/Forums/DisplayComments.php?file=Computer/Windows/Format_Large_Disks_to_FAT32_on_Windows_XP_and_Vista Format Large Disks to FAT32 on Windows XP and Vista]</ref>
 
The maximum possible size for a file on a FAT32 volume is 4 GiB minus 1 byte (2<SUP>32</SUP>&minus;1 bytes). Video applications, large databases, and some other software easily exceed this limit. Larger files require another formatting type such as [[HFS Plus|HFS+]] or [[NTFS]]. Until mid-2006, those who run [[dual boot]] systems or who move external data drives between computers with different operating systems had little choice but to stick with FAT32. Since then, full support for NTFS has become available in Linux and many other operating systems, by installing the [[Filesystem in Userspace|FUSE library]] (on Linux) together with the [[NTFS-3G]] driver. Data exchange is also possible between Windows and Linux by using the Linux-native [[ext2]] or [[ext3]] file systems through the use of external drivers for Windows, such as ext2 IFS; however, Windows cannot boot from ext2 or ext3 partitions.