NTFS文件系统详细介绍
更新时间:2010.01.14
一、什么是文件系统和NTFS
首先,需要澄清读者对于文件系统的一些错误理解,经常有这样的说法,“我的硬盘是FAT32格式的”,“C盘是NTFS格式”等,它们的错误在于,NTFS或是FAT32并不是格式,而是管理文件的系统,其次刚买回来的硬盘并没有文件系统,必须使用FDISK或Windows 2000/XP的分区工具等对其进行分区并格式化后才会有管理文件的系统,因此文件系统是对应分区的,而不是硬盘,不管是将硬盘分成一个分区,还是几个分区。
举个通俗的比喻,一块硬盘就像一个块空地,文件就像不同的材料,我们首先得在空地上建起仓库(分区),并且指定好(格式化)仓库对材料的管理规范(文件系统),这样才能将材料运进仓库保管。
文件不会受所在分区的文件系统影响,就像同样是汽车轮胎在A仓库可能直接堆在地上,而B仓库则会挂在墙上,仅仅是放置和管理方法不同而已,因此,在NTFS分区和FAT32分区的文件可以随意在分区间移动,内容不会因此产生任何不同。
NTFS的英文全称为“NT File System”,中文意为NT文件系统(见图1 24rntfs01 在“我的电脑”中右击“属性”,在弹出窗口中就可以看到文件系统信息)。它随着1996年7月的Windows NT 4.0诞生的,但直到Windows 2000,它才开始在个人用户中间得以推广,跨入了主力分区文件系统的行列。今天,Windows XP/2003和NTFS早已是“如胶似漆”了。
我们知道,当初FAT32文件系统的出现对于FAT16而言,可以说是有了比较明显的改善,但NTFS对FAT32的改进,就必须得用“卓越”来形容了。
NTFS最大分区上限已达到了2TB(1TB=1024GB),从诞生到现在经历了多个版本,Windows NT4.0中的版本为1.2,Windows 2000为3.0,Windows XP为3.1。如果要查看当前NTFS版本号,只要在命令提示符中输入“fsutil fsinfo ntfsinfo c:”(C为分区盘符)即可看到。
小知识
常见文件系统
FAT12:是IBM第一台个人电脑中的MS-DOS 1.0使用的文件系统,主要用于软盘。这种系统限制分区的容量最大为16MB——但这根本算不上问题,因为软盘容量从来没有达到16MB。
FAT16:它被很多操作系统支持,兼容性最好,但分区最大只能到2GB,并且空间浪费现象比较严重。并且由于FAT16文件系统是单用户文件系统,不支持任何安全性及长文件名。
FAT32:是在FAT16基础上发展而来,随着Windows 95 OSR2一起发布,可以被大多数操作系统支持,FAT32比FAT16更有效地利用了硬盘空间,并且最大分区的上限已经达到了32GB,适合一般家庭使用。
ISO9660:CD-ROM的文件系统,不过现在已经延伸出很多新的文件系统,对它的一些缺点进行了弥补,如Juliet等。
UDF:可读写光盘的文件系统。
Mac HFS:苹果电脑的文件系统,对大容量磁盘有比较好的支持。不过,现在大多数苹果电脑还在使用FAT32文件系统。
二、细数NTFS的四大优点
1.具备错误预警的文件系统
在NTFS分区中,最开始的16个扇区是分区引导扇区,其中保存着分区引导代码,接着就是主文件表(Master File Table,以下简称MFT),但如果它所在的磁盘扇区恰好出现损坏,NTFS文件系统会比较智能地将MFT换到硬盘的其他扇区,保证了文件系统的正常使用,也就是保证了Windows的正常运行。而以前的FAT16和FAT32的FAT(文件分配表)则只能固定在分区引导扇区的后面,一旦遇到扇区损坏,那么整个文件系统就要瘫痪。
但这种智能移动MFT的做法当然并非十全十美,如果分区引导代码中指向MFT的部分出现错误,那么NTFS文件系统便会不知道到哪里寻找MFT,从而会报告“磁盘没有格式化”这样的错误信息。为了避免这样的问题发生,分区引导代码中会包含一段校验程序,专门负责侦错。
2.文件读取速度更高效!
恐怕很多人都听说NTFS文件系统在安全性方面有很多新功能,但你可否知道:NTFS在文件处理速度上也比FAT32大有提升呢?
对DOS略知一二的读者一定熟悉文件的各种属性:只读、隐藏、系统等。在NTFS文件系统中,这些属性都还存在,但有了很大不同。在这里,一切东西都是一种属性,就连文件内容也是一种属性。这些属性的列表不是固定的,可以随时增加,这也就是为什么你会在NTFS分区上看到文件有更多的属性(见图2 24rntfs02)。
NTFS文件系统中的文件属性可以分成两种:常驻属性和非常驻属性,常驻属性直接保存在MFT中,像文件名和相关时间信息(例如创建时间、修改时间等)永远属于常驻属性,非常驻属性则保存在MFT之外,但会使用一种复杂的索引方式来进行指示。如果文件或文件夹小于1500字节(其实我们的电脑中有相当多这样大小的文件或文件夹),那么它们的所有属性,包括内容都会常驻在MFT中,而MFT是Windows一启动就会载入到内存中的,这样当你查看这些文件或文件夹时,其实它们的内容早已在缓存中了,自然大大提高了文件和文件夹的访问速度。
小提示
为什么FAT的效率不如NTFS高
FAT文件系统的文件分配表只能列出了每个文件的名称及起始簇,并没有说明这个文件是否存在,而需要通过其所在文件夹的记录来判断,而文件夹入口又包含在文件分配表的索引中。因此在访问文件时,首先要读取文件分配表来确定文件已经存在,然后再次读取文件分配表找到文件的首簇,接着通过链式的检索找到文件所有的存放簇,最终确定后才可以访问。
3.磁盘自我修复功能
NTFS利用一种“自我疗伤”的系统,可以对硬盘上的逻辑错误和物理错误进行自动侦测和修复。在FAT16和FAT32时代,我们需要借助Scandisk这个程序来标记磁盘上的坏扇区,但当发现错误时,数据往往已经被写在了坏的扇区上了,损失已经造成。
NTFS文件系统则不然,每次读写时,它都会检查扇区正确与否。当读取时发现错误,NTFS会报告这个错误;当向磁盘写文件时发现错误,NTFS将会十分智能地换一个完好位置存储数据,操作不会受到任何影响。在这两种情况下,NTFS都会在坏扇区上作标记,以防今后被使用。这种工作模式可以使磁盘错误可以较早地被发现,避免灾难性的事故发生。
有些人发现当把磁盘转换为NTFS文件系统后,用磁盘扫描程序就很难发现磁盘错误了。经过前面的介绍,你知道这是为什么了吗?
4.“防灾赈灾”的事件日志功能
在NTFS文件系统中,任何操作都可以被看成是一个“事件”。比如将一个文件从C盘复制到D盘,整个复制过程就是一个事件。事件日志一直监督着整个操作,当它在目标地——D盘发现了完整文件,就会记录下一个“已完成”的标记。假如复制中途断电,事件日志中就不会记录“已完成”,NTFS可以在来电后重新完成刚才的事件。事件日志的作用不在于它能挽回损失,而在于它监督所有事件,从而让系统永远知道完成了哪些任务,那些任务还没有完成,保证系统不会因为断电等突发事件发生紊乱,最大程度降低了破坏性。
5.我是否需要哪些附加的功能?
其实,NTFS还提供了磁盘压缩、数据加密、磁盘配额(在“我的电脑”中右击分区并并行“属性”,进入“配额”选项卡即可设置)、动态磁盘管理等功能,这些功能在很多报刊杂志上介绍的比较多了,这里不再详细介绍。
NTFS提供了为不同用户设置不同访问控制、隐私和安全管理功能。如果你的系统处于一个单机环境,比如家用电脑,那么这些功能对你意义不是很大。
小提示
从FAT转换过来的NTFS,性能有折扣
如果分区是从FAT32转换为NTFS文件系统的(使用命令为“CONVERT 驱动器盘符 /FS:NTFS”),不仅MFT会很容易出现磁盘碎片,更糟糕的是,磁盘碎片整理工具往往不能整理这各分区中的MFT,严重影响系统性能。因此,建议将分区直接格式化为NTFS文件系统。
三、NTFS的七大热点问答
1.是不是NTFS一定比FAT32更高效,为什么我感觉不到呢?
当然也不能这样一概而论,因为NTFS与FAT的单个文件操作速度差异往往仅在毫秒之间.一般无法察觉,如果硬盘小,文件操作不频繁,那么差异不明显,不过随着硬盘向200GB迈进,电脑同时执行多任务的机会不断增加,差异会越来越明显。
同时,NTFS的MFT相当于一个小型数据库,因此对硬件也有较高要求,而且对于较小分区它反而不如FAT32更高效,因此,是否使用NTFS文件系统还有以下几个注意点:
★微软建议分区大于32GB最好使用NTFS文件系统,而且在Windows XP中,分区超过个数字后,就无法格式为FAT32文件系统了。专家的建议是,分区在8GB以下,FAT32会更高效,分区在16GB或更高时,最好选择NTFS文件系统。对于8GB~16GB的分区,使用哪种就看你自己的喜好了。
★硬盘转速最好在5400转以上,CPU主频不低于700MHz,内存不少于256MB。
2.在Windows 98中如何查看NTFS分区中的内容?
推荐你使用NTFS Reader for DOS(下载地址:http://www.onlinedown.net/soft/10162.htm),它可以在DOS中查看、复制NTFS分区中的文件。另外,你还可以下载http://download2.lsoft.net/NtfsFloppySetup.exe,用它可以制作能够访问NTFS分区的启动软盘,而http://download2.lsoft.net/boot-cd-iso.zip则可制作相应的启动光盘。
3.看起来主文件分区表(MFT)十分重要,如果它损坏了如何恢复?
很简单,在“开始→运行”中输入“Cmd”,进入命令提示符。输入“Chkdsk”,回车后就会开始查找磁盘错误,找到后可以使用“Chkdsk /F”进行修复(见图3 24rntfs03)。
另外,还有朋友在看过22期《系统慢可能是你的文件太多了》一文后询问,如何优化MFT,其实很简单,就是定期用磁盘碎片整理工具整理磁盘,这样同时也会对MFT中的碎片进行整理。这里还有一个手工的方法,就是将分区中所有文件移动到其他分区,然后再移动回来,这等于重新整理和优化了数据分区的MFT,但效果比碎片整理差一些。
4.NTFS会对游戏运行有不良影响吗?
很多人关注这个问题,而有些人认为FAT32更适合玩游戏。其实,NTFS只是一种管理文件的系统,和游戏没有任何直接联系。也就是说,NTFS不会对游戏有特别优势,FAT32也同样如此。惟一值得小心的是一些较低级别的应用程序,它们会跳过高端的Win32 API接口,试图直接访问磁盘扇区,它们才是NTFS可怕的敌人。
5.如何配置簇的大小呢?
簇是文件系统中基本的储存单位,当你在Windows对分区进行格式化时,会有簇大小的选择(见图4 24rntfs04),如果设置的值比较大,那么文件保存时占用的簇就会少,从而文件读取性能就越高。还是用个比喻,簇就像仓库中的柜子,如果你选择的是小号柜子,那么一批材料可能一个柜子装不满,还得用三到四个,如果是大号柜子,那么可能只用一个或两个就装下了。这样装和取材料时,柜子越少效率就越高。但是,不少批次的材料可能一个大柜子都装不满,这样柜子就只能空着许多空间,积少成多,会浪费不少空间。
到底应该选择多少更合适呢?一个简单的办法就是,首先确定分区主要用来保存什么样的文件,如果是体积很大的视频和多媒体文件,那么最好将簇设置得大一些,这样可以提高性能。如果分区主要存储网页或文本文件等文件,建议簇小一些,推荐使用Windows的“默认值”,这样会减少空间浪费。
如果你想更改当前分区的簇的大小,同时又不想重新格式化,可以使用PQMagic来完成(“高级→调整簇的大小”)。
6.什么时候选择压缩NTFS卷
在“我的电脑”中右击某个分区并选择“属性”,在“常规”选项卡中有一个“压缩驱动器以节省磁盘空间”的选项,这个功能确实可以节省一些磁盘空间,但根据CPU速度、分区的大小和要压缩的数据,应用它后可能会不同的效率,或者提升,或者降低系统性能。
我们建议,如果CPU非常快,但硬盘属于比较慢的型号,可以考虑压缩,这样会对文件读取效率有些提高;如果分区大于8GB,则不要选择压缩,这样会影响系统性能;如果分区中保存的文件大部分是已经不能压缩的数据,比如:JPG、ZIP等已经压缩过的文件,那么即使选择了压缩,也不会有节省空间的效果,建议对主要保存文本、Office、BMP等文件的分区进行压缩。
7.给文件/文件夹加密之后,系统被格式化了,怎么才能访问这些文件夹?
最保险的方式是在格式化之前,以管理员身份设置“数据恢复代理”,以备将来的不时之需。具体使用方法参见http://support.microsoft.com/kb/241201/zh-cn。