FAT16
在说明FAT16文件系统之前,我们必须清楚FAT是什么?FAT(File Allocation Table)是“文件分配表”的意思。顾名思义,就是用来记录文件所在位置的表格,它对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了。不同的操作系统所使用的文件系统不尽相同,在个人计算机上常用的操作系统中,MS-DOS 6.x及以下版本使用FAT16;OS/2使用HPFS;Windows NT则使用NTFS;而MS-DOS 7.10及ROM-DOS 7.10同时提供了FAT16及FAT32供用户选用。其中我们接触最多的是FAT16、FAT32文件系统。
FAT16文件系统
FAT16使用了16位的空间来表示每个扇区(Sector)配置文件的情形,故称之为FAT16。
FAT16由于受到先天的限制,因此每超过一定容量的分区之后,它所使用的簇(Cluster)大小就必须扩增,以适应更大的磁盘空间。所谓簇就是磁盘空间的配置单位,就象图书馆内一格一格的书架一样。每个要存到磁盘的文件都必须配置足够数量的簇,才能存放到磁盘中。FAT16各分区与簇大小的关系如下表:
分区大小 FAT16簇大小
16MB-127MB 2KB
128MB-255MB 4KB
256MB-511MB 8KB
512MB-1023MB 16KB
1024MB-2047MB 32KB
如果你在一个1000MB的分区中存放50KB的文件,由于该分区簇的大小为16KB,因此它要用到4个簇才行。而如果是一个1KB的文件,它也必须使用一个簇来存放。那么每个簇中剩下的空间可否拿来使用呢?答案是不行的,所以在使用磁盘时,无形中都会或多或少损失一些磁盘空间。
由上可知,FAT16文件系统有两个最大的缺点:
(1)磁盘分区最大只能到2GB。当前只要你添购计算机的话,想必其中的硬盘大小必定至少有2GB,而3.2GB、4.3GB以上的硬盘比比皆是,且物美价廉。FAT16文件系统已不能适应当前这种大容量的硬盘,必须被迫分区成几个磁盘空间。而分区磁盘的大小又牵扯出簇的问题来,可谓影响颇大。
(2)使用簇的大小不恰当。试想,如果一个只有1KB大小的文件放置在一个1000MB的磁盘分区中,它所占的空间并不是1KB,而是16KB,足足浪费了15KB!当前流行的HTML文件,其大小几乎多为1KB、2KB,而制作一个网站往往用到数十个HTML文件。如果你的硬盘中有100个这种小文件的话,你浪费的磁盘空间可从700KB(511MB的分区),到3.1MB(2047MB的分区)。
以上这两个问题常常使得用户在“分多大的分区,才能节省空间,同时又可使硬盘的使用更加方便有效”的抉择中徘徊不定。
在Dos2.0的使用过程中,对更大的磁盘的管理能力的需求已经出现了,所以在Dos3.0中,微软推出了新的文件系统Fat16。除了采用了16位字长的分区表之外,Fat16和Fat12在其他地方都非常的相似。实际上,随着字长增加4位,可以使用的簇的总数增加到了65546。在总的簇数在4096之下的时候,应用的还是Fat12的分区表,当实际需要超过4096簇的时候,应用的是Fat16的分区表。刚推出的Fat16文件系统管理磁盘的能力实际上是32M。这在当时是看来是足够大的。1987年,硬盘的发展推动了文件系统的发展,Dos4.0之后的Fat16可以管理128M的磁盘。然后这个数字不断的发展,一直到2G。在整整的10年中,2G的磁盘管理能力都是大大的多于了实际的需要。需要指出的是,在windows95系统中,采用了一种比较独特的技术,叫做VFat来解决长文件名等问题。FAT16分区格式存在严重的缺点:大容量磁盘利用效率低。在微软的DOS和Windows系列中,磁盘文件的分配以簇为单位,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。这样,即使一个很小的文件也要占用一个簇,剩余的簇空间便全部闲置,造成磁盘空间的浪费。由于分区表容量的限制,FAT16分区创建的越大,磁盘上每个簇的容量也越大,从而造成的浪费也越大。
使用 FAT16 文件系统最大化分区大小
概要
Microsoft MS-DOS 4.0 版及更新版本允许 FDISK 给硬盘划分最大为 4 千兆字节 (GB) 的分区。然而,MS-DOS 文件分配表 (FAT) 文件系统仅支持每分区为 2 GB 大小。基于这一事实,大小在 2 到 4 GB 的硬盘必须划分为多个分区,而且每一个分区都不能超过 2 GB。
注意:Windows 95 OEM Service Release 版本 2 和更新版本支持大小超过 2 GB 的使用 FAT32 文件系统的驱动器。有关 FAT32 文件系统的更多信息,请参见下面的 Microsoft 知识库文章:
文章 ID: 154997 (http://support.microsoft.com/kb/154997/EN-US/)
标题:FAT32 文件系统说明
更多信息
FAT 文件系统支持的最大簇数目和簇的最大大小决定了 2-GB 这一分区限制。FAT 文件系统限于 65,525 个簇。簇大小必须为 2 的次方而且小于 65,536 字节,结果是最大簇大小为 32,768 字节 (32K)。将最大簇数 (65,525) 乘以最大簇大小 (32,768) 等于 2 GB。
注意,为用 FDISK 对硬盘进行分区,硬盘驱动器必须受计算机 ROM BIOS API 的支持,后者有 1024 柱面这一限制。
因为每个簇 32K 会浪费宝贵的硬盘空间,所以 FAT 文件系统并非总是最好的硬盘管理方案。Microsoft Windows NT 使用 NT 文件系统 (NTFS),它使用另一不同的文件/簇方案。Microsoft OS/2 版本 1.3 支持 HPFS,后者也使用了一种更保守的分配磁盘资源的方式。
注意:Microsoft Windows NT 也支持 FAT 驱动器。Windows NT 3.51 支持最大 4 GB 大小的 FAT 驱动器。MS-DOS 或 Windows 不支持 2 GB 至 4 GB 大小的 FAT 驱动器。换句话说,如果希望从 MS-DOS 或 Windows 95/98 以及 Windows NT 都能访问 FAT 驱动器,那么 FAT 驱动器不能够大于 2 GB。如果只从 Windows NT 上访问 FAT 驱动器,则驱动器大小可以在 2 GB 到 4 GB 之间。
有关其他信息,请参阅以下 Microsoft 知识库文章:
文章 ID: 127851 (http://support.microsoft.com/kb/127851/EN-US/)
标题:Problems Accessing Windows FAT Drives Larger than 2 GB
有关 MS-DOS 和 Windows 驱动器大小和分区限制的其他信息,请参见以下 Microsoft 知识库文章:
文章 ID: 67321 (http://support.microsoft.com/kb/67321/EN-US/)
标题:FAT Type and Cluster Size Depends on Logical Drive Size
文章 ID: 69912 (http://support.microsoft.com/kb/69912/EN-US/)
标题:MS-DOS Partitioning Summary