89

我搜索了互联网,但找不到任何令人信服的答案;

文件系统 VFAT 和 FAT32 是否相同,或者它们之间有什么区别?

4

2 回答 2

97

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

什么是脂肪?

FAT 可能听起来像是一个奇怪的文件系统名称,但它实际上是 File Allocation Table 的首字母缩写。FAT 于 1981 年推出,在计算机术语中是古老的。由于其年代久远,大多数操作系统(包括 Microsoft Windows NT®、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 的 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 等。

于 2012-08-13T06:14:43.627 回答
20

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

来源:这篇维基百科文章

df命令的输出lsblk确实显示vfat为文件系统类型。但sudo file -sL /dev/<partition>显示FAT (32 bit)文件系统是否为 FAT32。

您可以通过运行来确认vfat是模块而不是文件系统类型modinfo vfat

于 2019-10-01T18:54:11.350 回答