VFAT和FAT32文件系统有什么区别?

我搜查了networking,但没有find一个令人信服的答案。 文件系统VFAT和FAT32是一样的,还是两者有什么区别?

复制http://technet.microsoft.com/en-us/library/cc750354.aspx

什么是FAT?

FAT可能听起来像文件系统的一个奇怪的名字,但它实际上是文件分配表的首字母缩略词。 FAT在1981年推出,在计算机方面是古老的。 由于年龄的原因,大多数操作系统(包括Microsoft WindowsNT®,Windows 98,Macintosh OS和某些版本的UNIX)都支持FAT。

FAT文件系统将文件名限制为8.3命名约定,这意味着文件名可以在该句点之前不超过八个字符,并且不超过三个之后。 FAT文件系统中的文件名也必须以字母或数字开头,并且不能包含空格。 文件名不区分大小写。

什么关于VFAT?

也许你也听说过一个名为VFAT的文件系统。 VFAT是FAT文件系统的扩展,并且在Windows 95中引入.VFAT保持与FAT的向后兼容性,但放宽规则。 例如,VFAT文件名最多可包含255个字符,空格和多个句点。 尽pipeVFAT保留了文件名的大小写,但并不区分大小写。

当使用VFAT创build长文件名(长度大于8.3)时,文件系统实际上会创build两个不同的文件名。 一个是实际的长文件名。 此名称对于Windows 95,Windows 98和Windows NT(4.0和更高版本)可见。 第二个文件名被称为MS-DOS®别名。 MS-DOS别名是长文件名的缩写forms。 文件系统通过取长文件名的前六个字符(不包括空格),然后是代字号[〜]和数字预告片来创buildMS-DOS别名。 例如,文件名Brien的Document.txt将具有BRIEN'〜1.txt的别名。

VFAT存储长文件名的方式产生了一个有趣的副作用。 当您使用VFAT创build长文件名时,它将为MS-DOS别名使用一个目录条目,而长文件名的每13个字符使用另一个条目。 理论上,一个长文件名可以占用多达21个目录条目。 根目录有512个文件的限制,但如果要在根目录中使用最大长度的长文件名,则可以将此限制仅限于24个文件。 因此,您应该在根目录中非常谨慎地使用长文件名。 其他目录不受此限制的影响。

您可能想知道我们为什么要讨论VFAT。 原因在于它比FAT更普遍,但除了上面提到的差异外,VFAT也有同样的限制。 当您告诉Windows NT将分区格式化为FAT时,它实际上将该分区格式化为VFAT格式。 在Windows NT 4.0下唯一一次有一个真正的FAT分区是当您使用其他操作系统,如MS-DOS格式化分区。

FAT32

FAT32实际上是FAT和VFAT的扩展,首先与Windows 95 OEM Service Release 2(OSR2)一起引入。 FAT32极大地增强了VFAT文件系统,但它也有其缺点。

FAT32的最大优点是它大大增加了可用硬盘空间的数量。 为了说明这一点,请考虑FAT分区(也称为FAT16分区)只允许每个分区有一定数量的集群。 因此,随着分区大小的增加,集群大小也必须增加。 例如,一个512 MB的FAT分区的簇大小为8K,而一个2 GB的分区的簇大小为32K。

这可能听起来不是什么大问题,除非您认为FAT文件系统只能以单个群集增量运行。 例如,在一个2-GB的分区上,一个1字节的文件将占用整个集群,因此会消耗32K,或大约是该文件占用的空间量的32,000倍。 此规则适用于硬盘上的每个文件,因此您可以看到有多less空间可以被浪费。

将分区转换为FAT32可减less群集大小(并克服2 GB的分区大小限制)。 对于8 GB或更小的分区,群集大小降低到仅4K。 正如你可以想象的,通过将分区转换为FAT32来获得数百兆字节的数据并不罕见,特别是当分区包含大量小文件时。

注意:报价/文章(1999)的这一部分已过时。 下面更新了信息报价。

正如我所提到的,FAT32确实有局限性。 不幸的是,它不兼容Windows 98以及Windows 95的OSR2版本以外的任何操作系统。但是,Windows 2000将能够读取FAT32分区。

另一个缺点是您的磁盘实用程序和防病毒软件必须能够识别FAT32。 否则,他们可能会将新的文件结构解释为错误,并尝试纠正错误,从而破坏进程中的数据。

最后,我应该提到转换为FAT32是一个单向过程。 一旦你转换到FAT32,你不能将分区转换回FAT16。 因此,在转换为FAT32之前,您需要考虑是否将计算机用于双引导环境。 我还应该指出,虽然其他操作系统(如Windows NT)不能直接读取FAT32分区,但可以通过networking读取它。 因此,将FAT32分区上存储的信息与运行较旧操作系统的networking上的其他计算机共享是没有问题的。

在Doktor-J的评论中提到的更新(被同化以更新过时的答案以防注释被丢失):

我只想指出,大多数现代操作系统(WinXP / Vista / 7/8,MacOS X,即使不是所有的Linux版本)都可以读取FAT32,这与倒数第二段的内容相反。

原文是1999年写的,被张贴在微软的网站上,可能并不关心非微软的操作系统。

该段“排除”的操作系统可能是原来的Windows 95,Windows NT 4.0,Windows 3.1,DOS等