FAT、HPFS 和 NTFS 文件系统概述

本文介绍了文件分配表 (FAT) 、高性能文件系统 (HPFS) 和 Windows NT 下的 NT 文件系统 (NTFS) 之间的差异及其优缺点。

原始产品版本:  Windows 10 - 所有版本,Windows Server 2012 R2
原始 KB 编号:   100108

备注

HPFS 仅在 Windows NT 3.1、3.5 和 3.51 版本下受支持。 Windows NT 4.0 不支持并且无法访问 HPFS 分区。 此外,2000 年 9 月 98 Windows 95 OSR2 和 Windows 95 中提供了对 FAT32 文件系统Windows支持。

FAT 概述

到目前为止,FAT 是受组织支持的最简单Windows NT。 FAT 文件系统的特征是文件分配表 (FAT) ,它确实是一个驻留在卷最"顶部"的表。 为了保护卷,将保留 FAT 的两个副本,以防一个副本损坏。 此外,FAT 表和根目录必须存储在固定位置,以便可以正确找到系统的启动文件。

使用 FAT 格式化的磁盘在群集中分配,群集的大小由卷的大小决定。 创建文件时,在目录中创建一个条目,并建立包含数据的第一个群集编号。 FAT 表中的此项指示这是文件的最后一个群集,或指向下一个群集。

更新 FAT 表非常重要,而且非常耗时。 如果 FAT 表未定期更新,则会导致数据丢失。 这非常耗时,因为每次更新 FAT 表时,磁盘读取头都必须重新定位到驱动器的逻辑轨零。

FAT 目录结构没有组织,并且为文件提供驱动器上的第一个打开位置。 此外,FAT 仅支持只读、隐藏、系统和存档文件属性。

FAT 命名约定

FAT 使用传统的 8.3 文件命名约定,并且必须使用 ASCII 字符集创建所有文件名。 文件或目录的名称最多为八个字符,然后是一个 (.) 分隔符,最多三个字符的扩展名。 该名称必须以字母或数字开头,并且可以包含除下列字符之外的任何字符:

. " / \ [ ] : ; | = ,

如果使用其中任何字符,则可能会发生意外结果。 名称不能包含任何空格。

保留以下名称:

CON、AUX、COM1、COM2、COM3、COM4、LPT1、LPT2、LPT3、PRN、NUL

所有字符将转换为大写。

FAT 的优点

在任何受支持的文件系统上,无法Windows NT下执行取消删除操作。 取消删除实用程序会尝试直接访问硬件,这无法在Windows NT。 但是,如果文件位于 FAT 分区上,并且系统在 MS-DOS 下重新启动,则该文件可以取消删除。 FAT 文件系统最适合驱动器和/或大小约为 200 MB 的分区,因为 FAT 开始时开销非常小。 有关 FAT 优势的进一步讨论,请参阅以下内容:

  • Windows NT服务器"概念和规划指南"第 5 章,标题为"选择文件系统"

  • Windows NTWorkstation 4.0 资源工具包,第 18 章"选择文件系统"

  • Windows NTServer 4.0 资源工具包"资源指南"第 3 章,标题为"在哪些卷上使用哪个文件系统"部分

FAT 的缺点

最好是,在使用超过 200 MB 的驱动器或分区时,不应使用 FAT 文件系统。 这是因为随着卷大小的增加,FAT 的性能将快速降低。 无法对作为 FAT 分区的文件设置权限。

FAT 分区的大小限制为最大为 4 GB (GB) 下 Windows NT MS-DOS 中为 2 GB。

有关 FAT 的其他缺点的进一步讨论,请参阅以下内容:

  • Windows NT服务器"概念和规划指南"第 5 章,标题为"选择文件系统"

  • Windows NTWorkstation 4.0 资源工具包,第 18 章"选择文件系统"

  • Microsoft Windows NT Server 4.0 资源工具包"资源指南"第 3 章,标题为"在哪些卷上使用哪个文件系统"

HPFS 概述

HPFS 文件系统首先随 OS/2 1.2 引入,以便可以更好地访问随后出现在市场中的较大硬盘驱动器。 此外,新文件系统需要扩展命名系统、组织和安全性,以满足网络服务器市场的增长需求。 HPFS 维护 FAT 的目录组织,但添加基于文件名的目录自动排序。 文件名扩展到最多 254 个双字节字符。 HPFS 还允许文件由"数据"和特殊属性组成,以在支持其他命名约定和安全性方面提高灵活性。 此外,分配单元从群集更改为物理 (512 字节) 减少磁盘空间丢失。

在 HPFS 下,目录项比 FAT 下包含的信息更多。 除了属性文件,还包括有关修改、创建和访问日期和时间的信息。 HPFS 下的目录条目指向 FNODE,而不是指向文件的第一个群集。 FNODE 可以包含文件的数据,或可能指向文件数据或最终指向文件数据的其他结构的指针。

HPFS 尝试在连续扇区中分配尽可能多的文件。 执行此操作是为了在按顺序处理文件时加快速度。

HPFS 将驱动器组织为一系列 8 MB 的频带,并且只要有可能,文件就会包含在其中一个频带中。 其中每个频带之间是 2K 分配位图,可跟踪带内具有和尚未分配的扇区。 由于驱动器头无需返回到磁盘的逻辑顶部 (通常是磁盘的圆柱 0) ,而是返回到最近的带分配位图以确定要存储文件的位置,因此带状值可提高性能。

此外,HPFS 还包括几个独特的特殊数据对象:

超级块

Super Block 位于逻辑扇区 16 中,包含指向根目录的 FNODE 的指针。 使用 HPFS 的最大危险之一是,如果超级块由于扇区损坏而丢失或损坏,分区的内容也一样,即使驱动器的其余部分正常。 将所有内容复制到扇区为 16 的另一个驱动器并重新生成超级块,可以恢复驱动器上的数据。 但是,这是一项非常复杂的任务。

备用块

备用块位于逻辑扇区 17 中,包含一个"修补程序"表和备用目录块。 在 HPFS 下,当检测到坏扇区时,"热修复"条目用于在逻辑上指向现有良好扇区,以表示坏扇区。 这种用于处理写入错误的技术称为热修复。

热修复是一种技术,如果由于扇区损坏而出现错误,文件系统会将信息移动到其他扇区,将原始扇区标记为坏扇区。 这一切对于执行磁盘 I/O (应用程序都是透明的,即,应用程序永远不知道硬盘驱动器上存在) 。 使用支持热修复的文件系统将消除诸如 FAT"中止、重试或失败?"等错误消息。 遇到损坏扇区时发生的错误消息。

备注

设备中包含的 HPFS 版本Windows NT不支持热修复。

HPFS 的优点

HPFS 最适合 200-400 MB 范围的驱动器。 有关 HPFS 优势的更多讨论,请参阅以下内容:

  • Windows NT服务器"概念和规划指南"第 5 章,标题为"选择文件系统"

  • Windows NTWorkstation 4.0 资源工具包,第 18 章"选择文件系统"

  • Windows NTServer 4.0 资源工具包"资源指南"第 3 章,标题为"在哪些卷上使用哪个文件系统"部分

HPFS 的缺点

由于 HPFS 中涉及开销,因此对于大约 200 MB 以下的卷来说,这不是非常有效的选择。 此外,如果卷大于约 400 MB,则性能将会下降。 不能在 HPFS 上设置安全Windows NT。

HPFS 仅在 Windows NT 3.1、3.5 和 3.51 版本下受支持。 Windows NT 4.0 无法访问 HPFS 分区。

有关 HPFS 的其他缺点,请参阅以下内容:

  • Windows NT服务器"概念和规划指南"第 5 章,标题为"选择文件系统"

  • Windows NTWorkstation 4.0 资源工具包,第 18 章"选择文件系统"

  • Windows NTServer 4.0 资源工具包"资源指南"第 3 章,标题为"在哪些卷上使用哪个文件系统"部分

NTFS 概述

从用户的角度来看,NTFS 继续将文件组织到目录,这些目录与 HPFS 一样进行排序。 但是,与 FAT 或 HPFS 不同,磁盘上没有"特殊"对象,并且对基础硬件没有依赖性,例如 512 字节扇区。 此外,磁盘上没有特殊位置,例如 FAT 表或 HPFS 超级块。

NTFS 的目标为提供:

  • 可靠性,对于高端系统和文件服务器尤其可取

  • 用于添加功能的平台

  • 支持 POSIX 要求

  • 删除 FAT 和 HPFS 文件系统的限制

可靠性

为了确保 NTFS 的可靠性,已解决三个主要方面:可恢复性、删除致命单个扇区故障和热修复。

NTFS 是一个可恢复的文件系统,因为它可跟踪文件系统的事务。 在 FAT 或 HPFS 上执行 CHKDSK 时,将检查目录、分配和文件表中的指针的一致性。 在 NTFS 下,将维护针对这些组件的事务日志,以便 CHKDSK 只需要将事务回滚到最后一个提交点,以便恢复文件系统内的一致性。

在 FAT 或 HPFS 下,如果作为文件系统特殊对象之一的位置的扇区出现故障,将发生单个扇区故障。 NTFS 通过两种方式避免这种情况:第一种是,不在磁盘上使用特殊对象,并跟踪和保护磁盘上的所有对象。 其次,在 NTFS 下, (数取决于主文件) 的卷大小。

与 HPFS 的操作系统/2 版本类似,NTFS 支持热修复。

添加了功能

每个级别的 Windows NT设计目标之一是提供可添加到并基于其构建的平台,并且 NTFS 也不例外。 NTFS 提供了一个丰富而灵活的平台,其他文件系统也能够使用。 此外,NTFS 完全支持Windows NT模型,并支持多个数据流。 数据文件不再为单个数据流。 最后,在 NTFS 下,用户可以将自己的用户定义属性添加到文件中。

POSIX 支持

NTFS 是最符合 POSIX.1 的受支持的文件系统,因为它支持以下 POSIX.1 要求:

区分大小写的命名:

在 POSIX 下,README.TXT、Readme.txt 和 readme.txt 文件都是不同的文件。

其他时间戳:

附加时间戳提供上次访问文件的时间。

硬链接:

硬链接是两个不同的文件名(可位于不同的目录中)指向同一数据时。

删除限制

首先,NTFS 大大增加了文件和卷的大小,以便它们现在可多达 2^64 个字节 (16 个字节或 18,446,744,073,709,551,616 字节) 。 NTFS 还返回了群集的 FAT 概念,以避免出现固定扇区大小的 HPFS 问题。 这样做是因为Windows NT是一种可移植操作系统,并且可能会在某些时候遇到不同的磁盘技术。 因此,将每个扇区 512 个字节视为通常不适合分配的可能性很大。 这是通过允许将群集定义为硬件自然分配大小的倍数而完成的。 最后,在 NTFS 中,所有文件名都基于 Unicode,并且 8.3 文件名与长文件名一起保留。

NTFS 的优点

NTFS 最适合用于大约 400 MB 或更多的卷。 这是因为在 NTFS 下性能不会像 FAT 下一样在较大的卷大小下降级。

设计为 NTFS 的可恢复性使用户永远不一样在 NTFS 分区上运行任何类型的磁盘修复实用工具。 有关 NTFS 的其他优势,请参阅以下内容:

  • Windows NT服务器"概念和规划指南"第 5 章,标题为"选择文件系统"

  • Windows NTWorkstation 4.0 资源工具包,第 18 章"选择文件系统"

  • Windows NTServer 4.0 资源工具包"资源指南"第 3 章,标题为"在哪些卷上使用哪个文件系统"部分

NTFS 的缺点

建议不要对小于约 400 MB 的卷使用 NTFS,因为 NTFS 涉及的空间开销量。 此空间开销的形式为 NTFS 系统文件,这些文件通常使用 100 MB 分区上至少 4 MB 的驱动器空间。

目前,NTFS 中未内置任何文件加密。 因此,某人可以在 MS-DOS 或其他操作系统下启动,并使用低级别磁盘编辑实用工具查看存储在 NTFS 卷上的数据。

不可能使用 NTFS 文件系统格式化软盘;Windows NT使用 FAT 文件系统格式化所有软盘,因为 NTFS 中涉及的开销将不适合软盘。

有关 NTFS 缺点的进一步讨论,请参阅以下内容:

  • Windows NT服务器"概念和规划指南"第 5 章,标题为"选择文件系统"

  • Windows NTWorkstation 4.0 资源工具包,第 18 章"选择文件系统"

  • Windows NTServer 4.0 资源工具包"资源指南"第 3 章,标题为"在哪些卷上使用哪个文件系统"部分

NTFS 命名约定

文件和目录名称最多为 255 个字符,包括任何扩展名。 名称保留大小写,但不区分大小写。 NTFS 不会根据大小写区分文件名。 名称可以包含除下列字符之外的任何字符:

? " / \ < > * | :

目前,在命令行中,只能创建最多包含 253 个字符的文件名。

备注

基础硬件限制可能会在任何文件系统中施加额外的分区大小限制。 特别是,启动分区的大小只能为 7.8 GB,并且分区表中存在 2 TB 的限制。

有关支持用于存储的文件系统Windows NT,请参阅 Windows NT 资源工具包。