FAT、HPFS 和 NTFS 文件系统概述
本文介绍 Windows NT 下的文件分配表(FAT)、高性能文件系统(HPFS)和 NT 文件系统(NTFS)之间的差异及其优点和缺点。
原始 KB 数: 100108
注意
HPFS 仅在 Windows NT 版本 3.1、3.5 和 3.51 下受支持。 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,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 上设置安全性。
HPFS 仅在 Windows NT 版本 3.1、3.5 和 3.51 下受支持。 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 字节或 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 资源工具包。