FAT、HPFS 和 NTFS 文件系统概述
本文介绍文件分配表 (FAT) 、高性能文件系统 (HPFS) 和 Windows NT 下 NT 文件系统 (NTFS) 之间的差异及其优点和缺点。
原始 KB 编号: 100108
注意
仅 Windows NT 版本 3.1、3.5 和 3.51 支持 HPFS。 Windows NT 4.0 不支持并且无法访问 HPFS 分区。 此外,在 Windows 98/Windows 95 OSR2 和 Windows 2000 中提供了对 FAT32 文件系统的支持。
FAT 概述
FAT 是迄今为止 Windows NT 支持的文件系统中最简单化的。 FAT 文件系统的特点是文件分配表 (FAT) ,它实际上是一个位于卷“顶部”的表。 为了保护卷,将保留 FAT 的两个副本,以防第一个副本损坏。 此外,FAT 表和根目录必须存储在固定位置,以便正确定位系统的启动文件。
使用 FAT 格式化的磁盘在群集中分配,其大小取决于卷的大小。 创建文件时,在目录中创建一个条目,并建立包含数据的第一个群集编号。 FAT 表中的此项指示这是文件的最后一个群集,或指向下一个群集。
更新 FAT 表非常重要且非常耗时。 如果未定期更新 FAT 表,可能会导致数据丢失。 这很耗时,因为每次更新 FAT 表时,都必须将磁盘读取头重新定位到驱动器的逻辑轨迹零。
FAT 目录结构没有组织,并且文件位于驱动器上的第一个打开位置。 此外,FAT 仅支持只读、隐藏、系统和存档文件属性。
FAT 命名约定
FAT 使用传统的 8.3 文件命名约定,并且必须使用 ASCII 字符集创建所有文件名。 文件或目录的名称最多可以包含 8 个字符,然后是句号 (.) 分隔符,最多可以有三个字符的扩展名。 名称必须以字母或数字开头,并且可以包含除以下字符以外的任何字符:
. " / \ [ ] : ; | = ,
如果使用这些字符中的任何一个,可能会出现意外结果。 名称不能包含任何空格。
保留以下名称:
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 Server“概念和规划指南”,第 5 章,标题为“选择文件系统”的部分
Windows NT 工作站 4.0 资源工具包,第 18 章“选择文件系统”
Windows NT Server 4.0 资源工具包“资源指南”,第 3 章,标题为“在哪些卷上使用哪个文件系统”部分
FAT 的缺点
最好是,使用超过 200 MB 的驱动器或分区时,不应使用 FAT 文件系统。 这是因为随着卷大小的增加,FAT 的性能将迅速下降。 无法对属于 FAT 分区的文件设置权限。
在 Windows NT 下,FAT 分区的大小限制为最多 4 GB (GB) ,在 MS-DOS 中为 2 GB。
有关 FAT 的其他缺点的进一步讨论,请参阅以下内容:
Windows NT Server“概念和规划指南”,第 5 章,标题为“选择文件系统”的部分
Windows NT 工作站 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 包括几个唯一的特殊数据对象:
超级块
超级块位于逻辑扇区 16 中,包含指向根目录 FNODE 的指针。 使用 HPFS 的最大危险之一是,如果超级块因扇区坏而丢失或损坏,分区的内容也是如此,即使驱动器的其余部分正常也是如此。 通过将所有内容复制到具有良好扇区 16 的另一个驱动器并重新生成超级块,可以恢复驱动器上的数据。 但是,这是一项非常复杂的任务。
备用块
备用块位于逻辑扇区 17 中,包含“热修复”表和备用目录块。 在 HPFS 下,当检测到坏扇区时,“热修复”条目用于在逻辑上指向现有的良好扇区来代替坏扇区。 这种处理写入错误的技术称为热修复。
热修复是一种技术,其中,如果由于坏扇区而发生错误,则文件系统会将信息移动到其他扇区,并将原始扇区标记为坏。 对于执行磁盘 I/O (的任何应用程序而言,这一切都是透明的,也就是说,应用程序永远不知道硬盘驱动器) 存在任何问题。 使用支持热修复的文件系统将消除错误消息,例如遇到坏扇区时出现的 FAT“中止、重试或失败?”错误消息。
注意
Windows NT 附带的 HPFS 版本不支持热修复。
HPFS 的优点
HPFS 最适合 200-400 MB 范围内的驱动器。 有关 HPFS 优势的更多讨论,请参阅以下内容:
Windows NT Server“概念和规划指南”,第 5 章,标题为“选择文件系统”的部分
Windows NT 工作站 4.0 资源工具包,第 18 章“选择文件系统”
Windows NT Server 4.0 资源工具包“资源指南”,第 3 章,标题为“在哪些卷上使用哪个文件系统”部分
HPFS 的缺点
由于 HPFS 涉及开销,对于大约 200 MB 以下的卷,这不是一个非常有效的选择。 此外,卷大于约 400 MB 时,性能会有所降低。 无法在 Windows NT 下的 HPFS 上设置安全性。
仅 Windows NT 版本 3.1、3.5 和 3.51 支持 HPFS。 Windows NT 4.0 无法访问 HPFS 分区。
有关 HPFS 的其他缺点,请参阅以下内容:
Windows NT Server“概念和规划指南”,第 5 章,标题为“选择文件系统”的部分
Windows NT 工作站 4.0 资源工具包,第 18 章“选择文件系统”
Windows NT Server 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 的 OS/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 EB 或 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 Server“概念和规划指南”,第 5 章,标题为“选择文件系统”的部分
Windows NT 工作站 4.0 资源工具包,第 18 章“选择文件系统”
Windows NT Server 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 Server“概念和规划指南”,第 5 章,标题为“选择文件系统”的部分
Windows NT 工作站 4.0 资源工具包,第 18 章“选择文件系统”
Windows NT Server 4.0 资源工具包“资源指南”,第 3 章,标题为“在哪些卷上使用哪个文件系统”部分
NTFS 命名约定
文件和目录名称的长度最多为 255 个字符,包括任何扩展名。 名称保留大小写,但不区分大小写。 NTFS 不根据大小写区分文件名。 名称可以包含除以下字符以外的任何字符:
? " / \ < > * | :
目前,从命令行只能创建最多 253 个字符的文件名。
注意
基础硬件限制可能会在任何文件系统中施加额外的分区大小限制。 特别是,启动分区的大小只能为 7.8 GB,分区表中有 2 TB 的限制。
有关 Windows NT 支持的文件系统的详细信息,请参阅 Windows NT 资源工具包。