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

问题描述 投票:63回答:2

我在网上搜索,但没有找到令人信服的答案。文件系统VFAT和FAT32是否相同,或者它们之间有任何区别?

filesystems fat32 fat
2个回答
73
投票

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

什么是FAT?

FAT听起来像文件系统的一个奇怪名称,但实际上它是File Allocation Table的首字母缩写。 FAT于1981年推出,在计算机方面是古老的。由于年代久远,大多数操作系统(包括Microsoft WindowsNT®,Windows 98,Macintosh OS和某些UNIX版本)都支持FAT。

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

VFAT呢?

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

当您使用VFAT创建长文件名(大于8.3)时,文件系统实际上会创建两个不同的文件名。一种是实际的长文件名。此名称对Windows 95,Windows 98和Windows NT(4.0及更高版本)可见。第二个文件名称为MS-DOS®别名。 MS-DOS别名是长文件名的缩写形式。文件系统通过采用长文件名的前六个字符(不计空格),后跟波浪号[〜]和数字尾部来创建MS-DOS别名。例如,文件名Brien's Document.txt将具有BRIEN'〜1.txt的别名。

VFAT存储其长文件名的方式产生了一个有趣的副作用。当您使用VFAT创建长文件名时,它将为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倍。该规则适用于硬盘上的每个文件,因此您可以看到可以浪费多少空间。

将分区转换为FAT32可减小群集大小(并克服了2 GB的分区大小限制)。对于8 GB及以下的分区,群集大小减小到仅4K。可以想象,通过将分区转换为FAT32来获取数百兆字节的情况并不罕见,尤其是在该分区包含许多小文件的情况下。

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

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

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

最后,我要提到的是,转换为FAT32是单向过程。一旦转换为FAT32,就无法将分区转换回FAT16。因此,在转换为FAT32之前,您需要考虑计算机是否会在双引导环境中使用。我还应该指出,尽管其他操作系统(例如Windows NT)无法直接读取FAT32分区,但它们可以通过网络读取它。因此,与网络上运行较早操作系统的其他计算机共享FAT32分区上存储的信息没有问题。

Doktor-J在注释中提到的更新(如果丢失注释,将更新为过时的答案):

我只想指出大多数现代操作系统(WinXP / Vista / 7/8,MacOS X,大多数(如果不是全部)Linux变体)可以读取FAT32,这与倒数第二段相反建议。

原始文章写于1999年,并发布在Microsoft网站上,可能与非Microsoft操作系统无关。

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


0
投票

FAT32以及FAT16FAT12是文件系统类型,但是vfat以及umsdosmsdos是驱动程序,用于在Linux中安装FAT文件系统。驱动程序的选择确定如何将某些功能应用于文件系统,例如,安装有msdos驱动程序的系统文件名不长(它们是8.3格式)。 vfat是当今挂载FAT32文件系统的最常用驱动程序。

来源:this wikipedia article

© www.soinside.com 2019 - 2024. All rights reserved.