FAT ,HPFS 和 NTFS 文件系统概述[转贴]
翻译 CptFan这篇文章中的信息适用于:
Microsoft Windows NT Server 3.1
Microsoft Windows NT Workstation 3.1
Microsoft Windows NT Advanced Server
Microsoft Windows NT Workstation
Microsoft Windows NT Server
小结
这篇文章阐述了 FAT,HPFS 和 Windows NT 下的 NTFS 区别,包括它们的优点和不足。它可分成下面几个部分:
FAT 概述
HPFS 概述
NTFS 概述
注意:HPFS 只在Windows NT versions 3.1, 3.5 和 3.51 中被支持。Windows NT 4.0 并不支持且不能访问 HPFS 分区。同样,FAT32 文件系统只是被 Windows 95/98 和 Windows 2000(现在包括了XP) 支持。
更多信息
(译者注:本文中所指的 FAT 是 FAT16 而不是 FAT32)
FAT 概述
FAT 是目前为止被 Windows NT 支持的最简单的文件系统。FAT 文件系统被称作 file allocation table(FAT),事实上它确实是位于卷(分区)最顶部的一个表格。为了保护卷,保存有两份 FAT 以防万一其中一个被损坏。此外,FAT 表和根目录必须保存在一个固定的区域来使系统的引导文件能正确地定位。
一个用 FAT 格式化的磁盘是分配在簇内的,它的大小决定于卷的大小。当一个文件被创建后,一个在目录中的入口就被创建了此外第一个包含数据的簇的号码也被确认了。这个在 FAT 表中的入口要么表示这是文件的最后一个簇,要么指向下一个簇。
更新 FAT 表和时间消耗一样是十分重要的。如果 FAT 表不是经常被更新的话,会导致数据丢失。有时间消耗是因为每次 FAT 表更新磁盘读写磁头必须重新定位到磁盘的逻辑 0 磁道。
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 文件系统对于大约 200M 大小的驱动器或分区来说是最好的,因为 FAT 开始时的开销非常小。要获得更多关于 FAT 优点的讨论,请查阅下列资料:
微软 Windows NT Server “概念与计划指南(Concepts and Planning Guide)”第五章,标题是“选择文件系统(Choosing a File System)”的部分。
微软 Windows NT Workstation 4.0 资源包,第十八章,“选择文件系统(Choosing a File System)”。
微软 Windows NT Server 4.0 资源包 “资源指南(Resource Guide)”,第三章,标题是“哪个文件系统应该用在哪个卷上(Which File System to Use on Which Volumes)”的部分。
FAT 的缺点
更可取地,当使用地驱动器或分区大于 200 MB 时,FAT 文件系统就不应该被使用了。这是因为随着卷的容量增加, FAT 分区的性能迅速地下降。要对在 FAT 分区中的文件设置权限是不可能的。
FAT 分区 的容量在 Windows NT 下被限制 4G 以下,而在 MS-DOS 下则是 2G。要获得更多有关这个限制的信息,请查阅在微软知识库(Microsoft Knowledge Base)中的下列文章:
文章代号:Q118335
标题: MS-DOS 下分区的最大容量(Maximum Partition Size in MS-DOS)
要获得根多有关 FAT 缺点的讨论,请查阅下列资料:
微软 Windows NT Server “概念与计划指南(Concepts and Planning Guide)”第五章,标题是“选择文件系统(Choosing a File System)”的部分。
微软 Windows NT Workstation 4.0 资源包,第十八章,“选择文件系统(Choosing a File System)”。
微软 Windows NT Server 4.0 资源包 “资源指南(Resource Guide)”,第三章,标题是“哪个文件系统应该用在哪个卷上(Which File System to Use on Which Volumes)”的部分。
HPFS 概述
HPFS 文件系统第一次是随着 OS/2 1.2 被介绍的,为了获得对那时市场上出现的更大的硬盘更好的读取。此外,还有必要使用一个新的文件系统来为迅速增长的网络服务市场需求扩展命名系统,组织性和安全性。HPFS 保持了 FAT 的目录结构,但是增加了基于文件名的自动目录索引。文件名也被扩展到了 254 个双字符。 HPFS 同时也允许一个文件由“数据”和特殊的属性组成,为了在支持其它命名规则和安全性方面增加灵活性。此外,分配单位也从簇改成物理扇区(512 字节),这样做可以减少磁盘浪费。
在 HPFS 下,目录表比在 FAT 下的保存更多信息。属性文件也一样,它包含了关于修改,创建还有存取时间和日期。HPFS 下的目录入口指向 FNODE 而不是文件的第一个簇。 FNODE 可以包含文件的数据,或者包含指针,它的指向文件数据或其他最终指向文件数据的其它结构。
HPFS 会尽可能把一个文件分配在连续的扇区中。这样做是为了增加在顺序处理一个文件时的速度。
HPFS 把磁盘组织成一系列 8MB 大小的块,只要有可能一个文件就被包含在其中的一个块中。在那些块间隔的地方是 2K 大小的分配图,用它来表示块中的哪些扇区已经被分配了。分块增强了性能,因为磁头不用返回到磁盘的逻辑顶部(通常是 0 柱面),但是还是要到最近的块分配图来读取文件存放在哪里。
此外,HPFS 还包括两个唯一的特殊数据体:
超级块(Super Block)
超级块位于逻辑 16 扇区,并且包含一个指向根目录 FNODE 的指针。使用 HPFS 最大的危险之一是万一超级块丢失或由于一个坏扇区而损坏,对于分区中的内容也是一样,既使磁盘的其余部分是好的。如果把一切都拷贝到另外一个第 16 个扇区是好的磁盘上,然后重建超级块,这样是有可能恢复数据的,但这会是一个十分复杂的任务。
备用块 (Spare Block)
备用块位于逻辑 17 扇区,包括一个含有“热修复(hot fixes)”和备用目录块的表格。在 HPFS 下,当一个坏扇区被检测到时,“热修复”表目就用来逻辑地指向一个现存的好扇区来代替该坏扇区。这项用来处理写错误的技术被叫做热修复。
热修复是一项针对由于坏扇区而引起的错误的修复技术,文件系统会把坏扇区中的内容移到另一个扇区中并且把原扇区标记成坏的。这一切对于任何正在执行磁盘输入输出(I/O)的程序来说是透明的(即:应用程序从不知道硬盘有问题)。使用支持热修复的文件系统在遇到一个坏扇区的时候不会产生错误信息,就象那种在 FAT 中的“Abort, Retry, or Fail?”。
注意:Windows NT 中包含的 HPFS 版本是不支持热修复的。
HPFS 的优点
HPFS 对于 200-400MB 大小的驱动器是最好的。要获得更多有关 HPFS 优点的讨论,请查阅下列资料:
微软 Windows NT Server “概念与计划指南(Concepts and Planning Guide)”第五章,标题是“选择文件系统(Choosing a File System)”的部分。
微软 Windows NT Workstation 4.0 资源包,第十八章,“选择文件系统(Choosing a File System)”。
微软 Windows NT Server 4.0 资源包 “资源指南(Resource Guide)”,第三章,标题是“哪个文件系统应该用在哪个卷上(Which File System to Use on Which Volumes)”的部分。
HPFS 的缺点
由于 HPFS 中包含的开销,对小于 200MB 的卷不是一个很有效率的选择。此外,对于大于 400MB 的卷,就会有一些性能上的退化。你不可以在 Windows NT 下的 HPFS 中设置安全性。
HPFS 只是被 Windows NT versions 3.1, 3.5, 和 3.51 支持。Windows NT 4.0 不能存取 HPFS 文件系统。
要获得更多有关 HPFS 缺点的讨论,请查阅下列资料:
微软 Windows NT Server “概念与计划指南(Concepts and Planning Guide)”第五章,标题是“选择文件系统(Choosing a File System)”的部分。
微软 Windows NT Workstation 4.0 资源包,第十八章,“选择文件系统(Choosing a File System)”。
微软 Windows NT Server 4.0 资源包 “资源指南(Resource Guide)”,第三章,标题是“哪个文件系统应该用在哪个卷上(Which File System to Use on Which Volumes)”的部分。
NTFS 概述
从用户的角度来说,NTFS 仍旧把文件组织到经过索引的目录中,就像在 HPFS 中一样。然而,跟 FAT 和 HPFS 不同的是,磁盘上没有“特殊”的数据体而且不再依靠基本的硬件特性了,比如 512 字节的扇区。此外,磁盘上没有任何特定的位置,比如 FAT 表和 HPFS 的超级块。
NTFS 的目的是提供下列特性:
可靠性,这对于高级终端系统和文件服务器是非常重要的
一个增加了功能性的平台
支持 POSIX 需求
除去 FAT 和 HPFS 文件系统的限制
可靠性
为了保证 NTFS 可靠性,三个主要方面被涉及到:恢复能力,排除严重的单个扇区失效和热修复。
NTFS 是一个可恢复的文件系统,因为它会跟踪文件系统下的变化。当 CHKDSK 在检查 FAT 或 NTFS 时,目录内指针的一致性,分配和文件表都要检查。在 NTFS 下,这些要素的变化都被保存在日志中,所以 CHKDSK 只要把变化卷回到最近的一个记录点就可以恢复文件系统中的一致性。
在 FAT 或 HPFS 下,只要位于文件系统的特殊体中的一个扇区失效,简单扇区失效(single sector failure)就会发生。 NTFS 在两方面阻止这种情况的发生:第一,不在磁盘上使用特殊数据体且跟踪并保护磁盘上的所有对象。第二,在 NTFS 下,会保存有多份(数量是由卷的大小决定的)主文件表。
跟 OS/2 中的 HPFS 版本一样, NTFS 支持热修复。
增加了的功能性
Windows NT 的主要设计目标之一是在每一层都提供一个可增加和发展的平台, NTFS 也不例外。NTFS 提供了一个可以被其它文件系统使用的既丰富又可伸缩的平台。此外, NTFS 完全支持 Windows NT 的安全模型而且还支持多文件流。一个数据文件已经不再只是一个数据流了。最后,在 NTFS 下,一个用户可以对一个文件增加他(或她)自己的用户定义(user-defined)的属性。
POSIX 支持
NTFS 是 POSIX.1 在它所支持的文件系统中最应当使用的,应为它支持下列 POSIX.1 要求:
区分大小写的命名:
在 POSIX 下,README.TXT, Readme.txt, and readme.txt 都是不同的文件。
补充的时间戳:
补充了的时间戳支持文件最后存取的时间。
硬链接(Hard Links):
硬链接是当两个文件名不同时,它们可以位于不同的文件夹下面,却指向相同的数据。
消除限制
首先,大大增加了文件和卷的容量,因此它们现在最大可以达到 2^64 字节(16 exa字节或 18,446,744,073,709,551,616字节)。NTFS 同时也回到了 FAT 中的簇概念为了防止 HPFS 中由于固定的扇区容量引起的问题。这是可以做到的,因为Windows NT 是一个可移植操作系统而且不同的磁盘技术可能会在某种情况下遇到。因此,每个扇区 512 字节被认为很可能不是一个很适合的分配。这是靠把簇定义成硬件的本身的分配大小的几倍来实现的。最后,在 NTFS 中所有的文件名都是基于 Unicode 的,8.3文件名同长文件名一起被保留下来了。
NTFS 的优点
NTFS 对于大于等于 400MB 左右的卷是来说最好的应用。因为在 NTFS 下性能不会下降,而在拥有更大容量的 FAT 下却是如此。
在 NTFS 中设计的可恢复性可以使用户不在 NTFS 分区中使用任何磁盘修复工具。要获得更多有关 NTFS 优点的资料,请查阅下列资料:
微软 Windows NT Server “概念与计划指南(Concepts and Planning Guide)”第五章,标题是“选择文件系统(Choosing a File System)”的部分。
微软 Windows NT Workstation 4.0 资源包,第十八章,“选择文件系统(Choosing a File System)”。
微软 Windows NT Server 4.0 资源包 “资源指南(Resource Guide)”,第三章,标题是“哪个文件系统应该用在哪个卷上(Which File System to Use on Which Volumes)”的部分。
NTFS 的缺点
考虑到 NTFS 对磁盘空间开销的大小,所以不推荐在大约 400MB 以下的卷上使用 NTFS。这些磁盘空间开销是 NTFS 的系统文件,通常对于一个 100MB 的分区来说至少使用 4MB 的空间。
目前,还没有内建于 NTFS 中的加密(译者注:事实上现在 Windows 2000 中包含的 NTFS 5.0已经支持加密了)。因此,一些人就可以在 MS-DOS 下或其它的操作系统下启动,使用一个底层的磁盘编辑工具来查看在 NTFS 卷中存储的数据。
把一张软盘格式化成 NTFS 文件系统是可能哦;Windows NT 把所有的软盘用 FAT 文件系统格式化是因为 NTFS 中的开销使的它不适合用在软盘上。
要获得更多有关 NTFS 缺点的资料,请查阅下列资料:
微软 Windows NT Server “概念与计划指南(Concepts and Planning Guide)”第五章,标题是“选择文件系统(Choosing a File System)”的部分。
微软 Windows NT Workstation 4.0 资源包,第十八章,“选择文件系统(Choosing a File System)”。
微软 Windows NT Server 4.0 资源包 “资源指南(Resource Guide)”,第三章,标题是“哪个文件系统应该用在哪个卷上(Which File System to Use on Which Volumes)”的部分。
NTFS 命名规定
文件和目录名最多可以达到255 个字符,包括任何扩展名。名字会保留大小写,但不区分大小写。NTFS 并不基于于大小写区分文件名。文件名可以包括除了下列字符以外的任何字符:
?"/\[$lt][$gt]*|:
目前,从命令行,你只能创建最多只有 253 个字符的文件名。
注意:基本的硬件限制可能会引起在任何文件系统中附加的分区容量限制。特别的,一个启动分区的容量(最大)只能是7.8G,而且在分区表里面有 2TB(terabyte) 的限制。
要获得更多有关Windows NT 所支持的信息,请查阅 Windows NT 资源包
NTFS 和 FAT 文件系统中的尺寸限制 及 NTFS 性能优化
[译者按] 本文缘自 N•自由 发的一个帖子,经查阅精华贴,发现还是有许多未尽之处。后由 geforce fx 在微软的资料库文档中找到其官方答案,特翻译如下。
NTFS 和 FAT 文件系统中的尺寸限制
每个文件系统都支持一个最大的卷尺寸,文件尺寸,已经每卷可容纳的文件最大数量。因为 FAT16 和 FAT32 分别支持 4GB 和 32GB 的卷,要创建大于 32GB 的卷,就必须使用 NTFS 格式。如果在多系统共存的计算机中使用 FAT16 或 FAT32 格式,就必须对其尺寸限制有所了解:
一、小于 16MB 的 FAT 卷会被格式化为 FAT12 格式
二、使用 MS-DOS,Win95,Win98,WinMe,以及其它很多操作系统的计算机,其 FAT16 卷如果超过 2GB 就不可访问了。这个 2GB 的限制是由于这些操作系统不支持超过 32KB 的簇。
三、理论上说,FAT32 卷可以达到约 8TB;而实际上,WinXP Professional 可以格式化的最大 FAT32 卷也就是 32GB 而已。所以,必须使用 NTFS 格式来格式化超过 32GB 的卷。但,WinXP Pro 可以读写用其它操作系统格式化的更大的 FAT32 卷。
四、如果要建立包含多个物理磁盘的卷,例如跨区卷和带区卷,那么卷的大小就取决于每块磁盘上所使用了的空间。在多物理磁盘上创建大于 32GB 的卷,仍然要使用 NTFS 格式。
页:
[1]