NTFS文件系统研究.doc

上传人:asd****56 文档编号:70342603 上传时间:2023-01-19 格式:DOC 页数:33 大小:2MB
返回 下载 相关 举报
NTFS文件系统研究.doc_第1页
第1页 / 共33页
NTFS文件系统研究.doc_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《NTFS文件系统研究.doc》由会员分享,可在线阅读,更多相关《NTFS文件系统研究.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、NTFS介绍NTFS(New Technology File System)是一个比FAT复杂的多的文件系统,微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。1.1现状随着以NT为内核的Windows 2000/XP的普及,很多个人用户开始用到了NTFS。NTFS也是以簇为单位来存储数据文件,但NTFS中簇的大小并不依赖于磁盘或分区的大小。簇尺寸的缩小不但降低了磁盘空间的浪费,还减少了产生磁盘碎片的可能。NTFS支持文件加密管理功能,可为用户提供更高层次的安全保证。Windows NT/2000/XP/2003以上的Window

2、s版本能识别NTFS系统,Windows 9x/Me以及DOS等操作系统都不能直接支持、识别NTFS格式的磁盘,访问NTFS文件系统时需要依靠特殊工具。图表 Error! No text of specified style in document.1操作系统和文件系统支持表下面对目前Windows常用的文件系统作一个比较:表格 Error! No text of specified style in document.1文件系统比较比较标准NTFS5NTFSFAT32FAT16适用操作系统Windows 2000、XPWindows NT、2000、XPWindows 98、Me、2000、

3、XPDOS、Windows所有版本磁盘管理限制最大分区尺寸2TB2TB理论上2TB2GB分区中做多文件数目接近无限接近无限接近无限小于65000最大文件尺寸决定于文件存放分区的尺寸决定于文件存放分区的尺寸4GB2GB最大簇数几乎无限几乎无限26843545665535最大文件名长度255个英文字符255个英文字符255个英文字符8.3文件名标准,VFAT中为255个英文字符文件系统特征Unicode(统一代码)文件命名由Unicode字符设定由Unicode字符设定由系统字符设定由系统字符设定系统记录镜像MFT镜像文件MFT镜像文件FAT文件表的第二拷贝FAT文件表的第二拷贝引导扇区位置第一和

4、最后的扇区第一和最后的扇区第一扇区第一扇区文件属性标准属性加自定义属性标准属性加自定义属性标准属性设定标准属性设定交替数据流支持支持支持不支持不支持数据压缩支持支持支持不支持不支持数据加密支持支持不支持不支持不支持对象标识支持支持支持不支持不支持磁盘配额支持支持不支持不支持不支持稀疏文件支持支持不支持不支持不支持重装入点支持支持不支持不支持不支持卷装入点支持支持不支持不支持不支持性能概述安全性构造支持支持不支持不支持可恢复性支持支持不支持不支持性能在大分区上(500MB)性能很高但在有非常多小文件的小分区上性能较低在大分区上(500MB)性能很高但在有非常多小文件的小分区上性能较低在小分区上(

5、500MB)性能较低在小分区上(convert 需要转换的盘符 /FS:NTFS。如系统E盘原来为FAT16/32,现在 需要转换为NTFS,可使用如下格式:D:convert e: /FS:NTFS。所有的转换将在系统重新启动后完成。NTFS支持磁盘数据加密,加密文件系统(Encrpyted File Sysetm,EFS)是NTFS支持的重要特性。由于NTFS文件分区格式具有良好的安全性,如果你不希望自己在硬盘中的文件被其他人调用或查看,使用权限控制方式加密是非常有效的方法。设置方法非常简单:以系统管理员身份登录,使用鼠标右键单击需要加密的文件夹,选择“Properties”,切换到“Se

6、curity”选项卡。在“Group of user names”项中设置允许访问的用户只有Administrator和自己。删除其他的所有用户。保存设置退出即可。此后,其他用户将不能访问该文件夹。使用这项功能需要注意的是:一定要保证只有你一个人知道Administrator密码,并且设置其他用户不能属于Administrator。此外,你还可以详细的给每个用户设置权限,包括设置读取权限、写入权限、删除权限等,这样使用起来就更加灵活。你还可以设置权限,控制一个磁盘,或者磁盘分区只为自己使用,这样其他人就不能看到你的任何东西了。表格 Error! No text of specified sty

7、le in document.2NTFS文件系统组织分区引导扇区MFT表系统文件文件区域NTFS的索引非常详细,尽管很利于查找文件,但相当于小型数据库的索引方式对硬件有较高的硬件要求,而且对于较小的分区上存放较多小文件的情况而言,这种检索方式可能反而没有简单的链式快。最常见的情况就是笔记本用户,特别是前两年,笔记本硬盘的速度很慢,硬盘容量又小,而笔记本的性能又普遍低于台式机很多,所以这种情况下如果采用NTFS分区就可能会感觉慢。笔者个人认为,要想体现NTFS分区的性能优势,至少和FAT持平的话,电脑要有如下水准:硬盘的转速最好为7200r/s, CPU主频不低于700MHz,内存不少于 256

8、MB,单个分区不小于5GB。前两年有不少台式机都有某些指标不能达到这个水平,难怪有人抱怨NTFS不好了。但就目前的硬件水平而言,NTFS的优势会越来越明显。1.2 NTFS特点1.2.1优点NTFS的四大优点:1、具备错误预警的文件系统在NTFS分区中,最开始的16个扇区是分区引导扇区,其中保存着分区引导代码,接着就是主文件表(Master File Table,以下简称MFT),但如果它所在的磁盘扇区恰好出现损坏,NTFS文件系统会比较智能地将MFT换到硬盘的其他扇区,保证了文件系统的正常使用,也就是保证了Windows的正常运行。而以前的FAT16和FAT32的FAT(文件分配表)则只能固

9、定在分区引导扇区的后面,一旦遇到扇区损坏,那么整个文件系统就要瘫痪。但这种智能移动MFT的做法当然并非十全十美,如果分区引导代码中指向MFT的部分出现错误,那么NTFS文件系统便会不知道到哪里寻找MFT,从而会报告“磁盘没有格式化”这样的错误信息。为了避免这样的问题发生,分区引导代码中会包含一段校验程序,专门负责侦错。2、文件读取速度更高效!恐怕很多人都听说NTFS文件系统在安全性方面有很多新功能,但你可否知道:NTFS在文件处理速度上也比FAT32大有提升呢?对DOS略知一二的读者一定熟悉文件的各种属性:只读、隐藏、系统等。在NTFS文件系统中,这些属性都还存在,但有了很大不同。在这里,一切

10、东西都是一种属性,就连文件内容也是一种属性。这些属性的列表不是固定的,可以随时增加,这也就是为什么你会在NTFS分区上看到文件有更多的属性,如下图所示:图表 Error! No text of specified style in document.2NTFS文件属性示意图NTFS文件系统中的文件属性可以分成两种:常驻属性和非常驻属性,常驻属性直接保存在MFT中,像文件名和相关时间信息(例如创建时间、修改时间等)永远属于常驻属性,非常驻属性则保存在MFT之外,但会使用一种复杂的索引方式来进行指示。如果文件或文件夹小于1500字节(其实我们的电脑中有相当多这样大小的文件或文件夹),那么它们的所有

11、属性,包括内容都会常驻在MFT中,而MFT是Windows一启动就会载入到内存中的,这样当你查看这些文件或文件夹时,其实它们的内容早已在缓存中了,自然大大提高了文件和文件夹的访问速度。小提示!为什么FAT的效率不如NTFS高?FAT文件系统的文件分配表只能列出了每个文件的名称及起始簇,并没有说明这个文件是否存在,而需要通过其所在文件夹的记录来判断,而文件夹入口又包含在文件分配表的索引中。因此在访问文件时,首先要读取文件分配表来确定文件已经存在,然后再次读取文件分配表找到文件的首簇,接着通过链式的检索找到文件所有的存放簇,最终确定后才可以访问。3、磁盘自我修复功能NTFS利用一种“自我疗伤”的系

12、统,可以对硬盘上的逻辑错误和物理错误进行自动侦测和修复。在FAT16和FAT32时代,我们需要借助Scandisk这个程序来标记磁盘上的坏扇区,但当发现错误时,数据往往已经被写在了坏的扇区上了,损失已经造成。NTFS文件系统则不然,每次读写时,它都会检查扇区正确与否。当读取时发现错误,NTFS会报告这个错误;当向磁盘写文件时发现错误,NTFS将会十分智能地换一个完好位置存储数据,操作不会受到任何影响。在这两种情况下,NTFS都会在坏扇区上作标记,以防今后被使用。这种工作模式可以使磁盘错误可以较早地被发现,避免灾难性的事故发生。4、“防灾赈灾”的事件日志功能在NTFS文件系统中,任何操作都可以被

13、看成是一个“事件”。比如将一个文件从C盘复制到D盘,整个复制过程就是一个事件。事件日志一直监督着整个操作,当它在目标地D盘发现了完整文件,就会记录下一个“已完成”的标记。假如复制中途断电,事件日志中就不会记录“已完成”,NTFS可以在来电后重新完成刚才的事件。事件日志的作用不在于它能挽回损失,而在于它监督所有事件,从而让系统永远知道完成了哪些任务,那些任务还没有完成,保证系统不会因为断电等突发事件发生紊乱,最大程度降低了破坏性。5、附加功能其实,NTFS还提供了磁盘压缩、数据加密、磁盘配额(在“我的电脑”中右击分区并并行“属性”,进入“配额”选项卡即可设置)、动态磁盘管理等功能,这些功能在很多

14、报刊杂志上介绍的比较多了,这里不再详细介绍。NTFS提供了为不同用户设置不同访问控制、隐私和安全管理功能。如果你的系统处于一个单机环境,比如家用电脑,那么这些功能对你意义不是很大。小提示!从FAT转换过来的NTFS,性能有折扣如果分区是从FAT32转换为NTFS文件系统的(使用命令为“CONVERT 驱动器盘符 /FS:NTFS”),不仅MFT会很容易出现磁盘碎片,更糟糕的是,磁盘碎片整理工具往往不能整理这各分区中的MFT,严重影响系统性能。因此,建议将分区直接格式化为NTFS文件系统1.2.2 NTFS的不足知道了FAT和NTFS的组织结构后,很容易理解正是因为不同的组织管理方式,导致了完全

15、不同的文件操作方式,从而决定了最终的性能差异。例如当访问一个文件时,由于FAT文件系统的文件分配表只列出了每个文件的名称及起始簇,并没有说明这个文件是否存在,而需要通过其所在文件夹的记录来判断,而文件夹的入口又包含在文件分配表的索引中。因此首先要读取文件分配表来确定文件已经存在,然后再次读取文件分配表找到文件的首簇,最后通过链式的检索找到文件所有的存放簇,最终确定后才可以访问。而在NTFS文件系统中,由于任意文件都在MFT中有详细的记录,所以只要读取MFT中的相关记录文件马上可以使用。这就是NTFS在文件操作性能上要好于FAT的根本原因。事实上, NTFS不断引入的新特性,如综合索引等,仍在进

16、一步拉大这种差距。从技术角度来说这个差距是巨大的,但为何有些人无法感觉到这种差异甚至有相反的感觉呢?原因也很简单,绝大多数人的计算机应用环境简单,其磁盘操作主要是单文件的操作。再加上很多人的硬盘远不够大,并发操作量也远不够多,因此NTFS与FAT的单个文件操作速度差异往往仅在毫秒之间根本无法察觉,但如果是在大型的网络服务器上,访问量很多,文件操作频繁,还存在大量并发操作,这种性能差异就会相当惊人。另一方面随着100GB以上容量的硬盘逐渐成为主流,再加上个人使用电脑同时执行多个任务的机会不断增加,这种差距也会越来越明显。那么觉得 NTFS 文件系统更慢的原因是什么呢?NTFS的索引非常详细,尽管

17、很利于查找文件,但相当于小型数据库的索引方式对硬件有较高的硬件要求,而且对于较小的分区上存放较多小文件的情况而言,这种检索方式可能反而没有简单的链式快。最常见的情况就是笔记本用户,特别是前两年,笔记本硬盘的速度很慢,硬盘容量又小,而笔记本的性能又普遍低于台式机很多,所以这种情况下如果采用NTFS分区就可能会感觉慢。笔者个人认为,要想体现NTFS分区的性能优势,至少和FAT持平的话,电脑要有如下水准:硬盘的转速最好为7200r/s, CPU主频不低于700MHz,内存不少于 256MB,单个分区不小于5GB。前两年有不少台式机都有某些指标不能达到这个水平,难怪有人抱怨NTFS不好了。但就目前的硬

18、件水平而言,NTFS的优势会越来越明显。1.3 NTFS未来无论是FAT还是NTFS ,用户访问某个文件都必须通过层次型的目录树结构到达其保存位置,如果不知道文件保存位置,那就只能使用操作系统的搜索功能了。不知道你有没有想过:我们需要的是文件,而不是它的位置,即然如此,为什么要我们必须记住这些“无用”的信息?为解决这个问题,微软将在下一代操作系统中(内部代号Longhorn)中推出传说中的WinFS (windows Future Storage , windwos未来存储)服务,也就是被人们误以为是文件系统的那个东西。事实上,NTFS将是“Longhorn”的唯一文件系统,WinFS服务可以

19、看作是在NTFS的基础上增加了一个数据库层,这个数据库层以即将出现的SQL Server的“Yukon”版为基础。对于WinFS来说,文件除了我们熟悉的属性,诸如文件名称、大小、日期外,还将通过诸如作者名、图像大小之类的元数据建立索引。系统底层的目录结构仍将存在,但用户使用的将是一个相似文件构成的库(Library)。每个库由一组通过查询WinFS数据库获得的文件构成。如果WinFS确实能将查找文件的依据改变为它是什么,而不是它在哪里的话,无疑这将是基于NTFS文件系统的一个突破。NTFS相关概念理论2.1 RAID 简介RAID(Redundent Array of Inexpensive

20、Disks)由美国加州伯克利分校的D.A.Patterson教授在1988年提出。图表 Error! No text of specified style in document.3RAID性能比较WindowsNT/2000XP/2003种的RAID5是一种软RAID。2.2 NTFS文件系统分区2.2.1 基本分区2.2.2 动态分区2.3 NTFS参数结构介绍本节主要介绍NTFS的参数概念。2.3.1 NTFS的DBRNTFS的DBR和FAT32的DBR作用相同,由MBR得到DBR,再由DBR引导操作系统。在Windows NT/2000/XP/2003上,由DBR调入NTLDR,由NT

21、LDR启动操作系统。NTFS的引导扇区完成引导和定义分区参数。FAT分区中,即使文件不正确,而BOOT记录正常,分区会显示没有错误。和FAT分区不同,而NTFS分区的BOOT记录不是分区正确与否的充分条件。因为必须MFT中的系统记录(如$MFT等)正常,该分区才能正常访问。NTFS的BPB参数如下表所示:表格 Error! No text of specified style in document.3 BPB参数字节偏移长度常用值意义0x0B字0x0002每扇区字节数0x0D字节0x08每簇扇区数0x0E字0x0000保留扇区0x103字节0x000000总为00x13字0x0000NTFS

22、未使用,为00x15字节0xF8介质描述0x16字0x0000总为00x18字0x3F00每磁盘扇区数0x1A字0xFF00磁头数0x1C双字0x3F000000隐含扇区0x20双字0x00000000NTFS未使用,为00x288字节0x4AF57F0000000000扇区总数0x308字节0x0400000000000000$MFT的逻辑簇号0x388字节0x54FF070000000000$MFTMirr的逻辑簇号0x40双字0xF6000000每MFT记录簇数0x44双字0x01000000每索引簇数0x488字节0x14A51B74C91B741C卷标0x50双字0x00000000

23、检验和MFT中的文件记录大小一般是固定的,不管簇的大小是多少,均为1KB。文件记录在MFT文件记录数组中物理上是连续的,且从0开始编号,所以,NTFS是预定义文件系统。MFT仅供系统本身组织、架构文件系统使用,这在NTFS中称为元数据(metadata,是存储在卷上支持文件系统格式管理的数据。它不能被应用程序访问,只能为系统提供服务)。其中最基本的前16个记录是操作系统使用的非常重要的元数据文件。这些元数据文件的名字都以“$”开始,所以是隐藏文件,在Windows 2000/XP中不能使用dir命令(甚至加上/ah参数)像普通文件一样列出。在WINHEX中带有NFI.EXE,用此工具可以显示这

24、些记录与文件的对应关系,下一次再详细解释。这些元数据文件是系统驱动程序管理卷所必需的,Windows 2000/XP给每个分区赋予一个盘符并不表示该分区包含有Windows 2000/XP可以识别的文件系统格式。如果主文件表损坏,那么该分区在Windows 2000/XP下是无法读取的。为了使该分区能够在Windows 2000/XP下能被识别,就必须首先建立Windows 2000/XP可以识别的文件系统格式即主文件表,这个过程可通过高级格式化该分区来完成。Windows以簇号来定位文件在磁盘上的存储位置,在FAT格式的文件系统中,有关簇号的指针包含在FAT表中,在NTFS中,有关簇号的指针

25、则包含在$MFT及$MFTMirr文件中。NTFS使用逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)来对簇进行定位。LCN是对整个卷中所有的簇从头到尾所进行的简单编号。用卷因子乘以LCN,NTFS就能够得到卷上的物理字节偏移量,从而得到物理磁盘地址。VCN则是对属于特定文件的簇从头到尾进行编号,以便于引用文件中的数据。VCN可以映射成LCN,而不必要求在物理上连续。在NTFS卷上,跟随在BPB后的数据字段形成一个扩展BPB。这些字段中的数据使得 Ntldr能够在启动过程中找到主文件表MFT(Master Fil

26、e Tabl )。在NTFS卷上,MFT并不象在FAT 16卷和FAT 32卷上一样,被放在一个预定义的扇区中。由于这个原因,如果在MTF的正常位置中有坏扇区的话,就可以把MFT移到别的位置。但是,如果该数据被破坏,就找不到MFT的位置,Windows 2000假设该卷没有被格式化。因此,如果一个ntfs的卷提示未格式化,可能并未破坏MFT,依据BPB的各字段的意思是可以重建BPB的。2.3.2 NTFS文件空间分配NTFS文件按照簇分配。簇的大小必须是物理扇区整数倍,而且总是2的n次幂。表格 Error! No text of specified style in document.4 NT

27、FS的缺省簇的大小卷大小每簇的扇区缺省的簇大小小于等于512MB1512字节513MB1024MB(1GB)21024字节(1KB)1025MB2048MB(2GB)42048字节(2KB)大于等于2049MB84KB从上面可以看出,也就是说不管驱动器多大 NTFS 簇的大小不会超过 4KB。2.3.3 NTFS元文件NTFS中文件通过主文件表(MFT,Main File Table)确定其在磁盘上的位置。MFT是一个数据库,由一系列文件记录组成。卷中每一个文件都有一个文件记录,其中第一个文件记录称作基本文件记录,里面存储有其他扩展文件记录的信息。主文件表也有自己的文件记录。NTFS卷上的每个

28、文件都各有一个唯一的64位的文件引用号(File Reference Number,也称文件索引号)。文件引用号由两部分组成:文件号和文件顺序号。文件号48位,对应该文件在MFT中的位置;文件顺序号随着文件记录的重用而增加(考虑到NTFS一致性检查)。NTFS使用逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number)来对簇进行定位。LCN是对整个卷中的簇从头到尾的编号,卷因子乘以LCN可得到卷上的物理字节偏移。VNC是对特定文件的簇从头到尾的编号,以便引用文件中的数据,VNC可以映射成LCN而不要求在物理上连续。NTFS目录只

29、是一个简单的文件名和文件引用号的索引。如果目录的属性列表小于一个记录长,那么该目录所有信息存储在MFT的记录中,否则大于一个记录长的使用B+树结构进行管理(B+树便于大型目录文件和子目录的快速查找)。如图所示:图表 Error! No text of specified style in document.4 NTFS目录B-树:一种结构划索引方式。比如建立文件A时,文件系统为其创建索引文件B,由于B的规模仍然太大,为进一步提高速度,又建立了索引的索引文件C,以及索引的索引的索引文件D。这又产生了新问题:B、C、D三个索引文件的对象层次不同,结构不同,操作3个索引文件非常繁琐。所以人们研究使用

30、一种特珠的结构来实现多重索引,B-树就是其中比较成功的方法。而NTFS所使用的“B+树”综合索引方式与其非常类似,由于这些索引的具体实施非常复杂,这里就不详述了。MFT的基本文件记录中有一指针,指向一个存储非常驻的索引缓冲,包括该目录下所有下一级子目录和文件的外部簇。NTFS管理是原则:磁盘上任何对象都作为文件管理。文件通过主文件表定位。MFT文件记录大小固定的1KB。文件记录在MFT文件记录数组中物理上连续,从0开始编号,所以NTFS可以看作预定义文件系统。MFT仅供系统本身组织、架构文件系统使用,这在NTFS中被称为原数据(Metadata)。那么原数据可以定义为:存储在卷上支持文件系统各

31、式管理的数据,不能被应用程序访问,只能为系统提供特殊服务。原数据前16个记录是操作系统使用的非常重要原数据文件,这些文件以“$”开头,为隐藏文件,不能被用户列出。但是能被特殊工具列出,如NFI.EXE。FAT文件系统簇号指针在FAT表中,而NTFS中簇号指针包含在$MFT和$MFTMirr文件中。图表 Error! No text of specified style in document.5 NTFS元文件每一个MFT记录都对应着不同的文件,如果一个文件具有多个属性或者分散存储,那么就可能需要多个文件记录。其中第一个记录称作基本文件记录(Basic File Record)。MFT中的第1

32、个记录就是MFT自身。由于MFT文件本身的重要性,为了确保文件系统结构的可靠性,系统专门为它准备了一个镜像文件(MftMirr),也就是MFT中的第2个记录。第3个记录是日志文件(LogFile)。该文件是NTFS为实现可恢复性和安全性而设计的。当系统运行时,NTFS就会在日志文件中记录所有影响NTFS卷结构的操作,包括文件的创建和改变目录结构的命令,例如复制,从而在系统失败时能够恢复NTFS卷。第4个记录是卷文件(Volume),它包含了卷名、被格式化的卷的NTFS版本和一个标明该磁盘是否损坏的标志位(NTFS系统以此决定是否需要调用Chkdsk程序来进行修复)。第5个记录是属性定义表(At

33、trDef,attribute definition table),其中存放了卷所支持的所有文件属性,并指出它们是否可以被索引和恢复等。第6个记录是根目录(),其中保存了存放于该卷根目录下所有文件和目录的索引。在访问了一个文件后,NTFS就保留该文件的MFT引用,第二次就能够直接进行对该文件的访问。第7个记录是位图文件(Bitmap)。NTFS卷的分配状态都存放在位图文件中,其中每一位(bit)代表卷中的一簇,标识该簇是空闲的还是已被分配了的,由于该文件可以很容易的被扩大,所以NTFS的卷可以很方便的动态的扩大,而FAT格式的文件系统由于涉及到FAT表的变化,所以不能随意的对分区大小进行调整。

34、第8个记录是引导文件(Boot),它是另一个重要的系统文件,存放着Windows 2000/XP的引导程序代码。该文件必须位于特定的磁盘位置才能够正确地引导系统。该文件是在Format程序运行时创建的,这正体现了NTFS把磁盘上的所有事物都看成是文件的原则。这也意味着虽然该文件享受NTFS系统的各种安全保护,但还是可以通过普通的文件I/O操作来修改。第9个记录是坏簇文件(BadClus),它记录了磁盘上该卷中所有的损坏的簇号,防止系统对其进行分配使用。第10个记录是安全文件(Secure),它存储了整个卷的安全描述符数据库。NTFS文件和目录都有各自的安全描述符,为了节省空间,NTFS将具有相

35、同描述符的文件和目录存放在一个公共文件中。第11个记录为大写文件(UpCase,upper case file),该文件包含一个大小写字符转换表。第12个记录是扩展元数据目录(Extended metadata directory)。第13个记录是重解析点文件($Extend$Reparse)。第14个记录是变更日志文件($Extend$UsnJrnl)。第15个记录是配额管理文件($Extend$Quota)。第16个记录是对象ID文件($Extend$ObjId)。第1723记录是是系统保留记录,用于将来扩展。MFT的前16个元数据文件是如此重要,为了防止数据的丢失,NTFS系统在该卷文件

36、存储部分的正中央对它们进行了备份,参见下图。图表 Error! No text of specified style in document.6 MFT空间分配NTFS把磁盘分成了两大部分,其中大约12%分配给了MFT,以满足其不断增长的文件数量。为了保持MFT元文件的连续性,MFT对这12%的空间享有独占权。余下的88%的空间被分配用来存储文件。而剩余磁盘空间则包含了所有的物理剩余空间-MFT剩余空间也包含在里面。MFT空间的使用机制可以这样来描述:当文件耗尽了存储空间时,Windows操作系统会简单地减少MFT空间,并把它分配给文件存储。当有剩余空间时,这些空间又会重新被划分给MFT。虽然

37、系统尽力保持MFT空间的专用性,但是有时不得不做出牺牲。尽管MFT碎片有时是无法忍受的,却无法阻止它的发生。那么NTFS访问卷过程如下;当NTFS访问某个卷时,它必须“装载”该卷:NTFS会查看引导文件(在图中的Boot元数据文件定义的文件),找到MFT的物理磁盘地址。它就从文件记录的数据属性中获得VCN到LCN的映射信息,并存储在内存中。这个映射信息定位了MFT的运行(run或extent)在磁盘上的位置。NTFS再打开几个元数据文件的MFT记录,并打开这些文件。如有必要NTFS开始执行它的文件系统恢复操作。在NTFS打开了剩余的元数据文件后,用户就可以开始访问该卷了。2.3.4 元文件和D

38、BR参数关系上节提到NTFS把磁盘上的对象都看作是文件。因此DBR和元文件在NTFS中都是文件。与FAT32文件系统一样,NTFS文件系统得分区或卷的切入点是DBR。NTFS中DBR是本分区的第一个扇区内容,结构如图:图表 Error! No text of specified style in document.7 NTFS DBR结构其中的参数BPB如图:图表 Error! No text of specified style in document.8 NTFS BPB结构第一个扇区DBR是一个文件,也$ROOT文件的第一个扇区。$MFT也是文件,记录$MFT文件信息的是他本身。$MFT

39、的文件记录第一项是$MFT,第8项是$ROOT。系统通过DBR找到$MFT,然后由$MFT定位和确定$ROOT。在所有的NTFS分区中,$BOOT占用前16扇区。引导分区中$BOOT的代码量一般占用7个扇区(06扇区),后面为空,这些代码是系统引导代码。引导分区和非引导分区的16扇区内容一致,区别是第0个扇区。如果启动分区的$BOOT文件损坏,可以用其他分区的$BOOT文件恢复。图表 Error! No text of specified style in document.9 $MFT和DBR关系$MFT的起始位置由DBR的BPB参数确定,$MFTMirr的起始位置也由DBR的BPB参数确定

40、。在NTFS中,除了DBR本身是预设的,其他文件信息都存储在$MFT中。2.3.5 NTFS的文件和目录NTFS将文件作为属性/属性值的集合来处理,这一点与其他文件系统不一样。文件数据就是未命名属性的值,其他文件属性包括文件名、文件拥有者、文件时间标记等。下图显示了一个用于小文件的MFT记录。图表 Error! No text of specified style in document.10 小文件和目录的MFT每个属性由单个的流(stream)组成,即简单的字符队列。严格地说,NTFS并不对文件进行操作,而只是对属性流进行读写。NTFS提供对属性流的各种操作:创建、删除、读取(字节范围)以

41、及写入(字节范围)。读写操作一般是针对文件的未命名属性的,对于已命名的属性则可以通过已命名的数据流句法来进行操作。NTFS目录只是一个简单的文件名和文件引用号的索引。如果目录的属性列表小于一个记录长,那么该目录所有信息存储在MFT的记录中,否则大于一个记录长的使用B+树结构进行管理(B+树便于大型目录文件和子目录的快速查找),并且用一个指针指向一个外部簇(Extent,见常驻属性和非常驻属性)。如图表 Error! No text of specified style in document.4 NTFS目录所示。$MFT自身的记录长可能超过一个记录大小,所以存储情况一般如下图:图表 Erro

42、r! No text of specified style in document.11 $MFT存储情况NTFS卷上文件的常用属性在下表中列出(并不是所有文件都有所有这些属性)。图表 Error! No text of specified style in document.12 NTFS常用属性2.3.6 常驻属性与非常驻属性常驻属性(Resident Attribute):当一个文件很小时,其所有属性和属性值可存放在MFT的文件记录中,这些属性值能直接存放在MFT中属性称为常驻属性。有些属性总是常驻的,这样NTFS才可以确定其他非常驻属性。例如,标准信息属性和根索引就总是常驻属性。每个属

43、性都是以一个标准头开始的,在头中包含该属性的信息和NTFS通常用来管理属性的信息。该头总是常驻的,并记录着属性值是否常驻、对于常驻属性,头中还包含着属性值的偏侈量和属性值的长度。如果属性值能直接存放在MFT中,那么NTFS对它的访问时间就将大大缩短。NTFS只需访问磁盘一次,就可立即获得数据;而不必像FAT文件系统那样,先在FAT表中查找文件,再读出连续分配的单元,最后找到文件的数据。小文件或小目录的所有属性,均可以在MFT中常驻。小文件的未命名属性可以包括所有文件数据。建立一个小文件如下图所示:图表 Error! No text of specified style in document.

44、13 小文件示意图1图表 Error! No text of specified style in document.14 小文件示意图2如通过NFI查看文件“新建 文本文档.txt”的文件记录号为36,“nfi d:新建 文本文档.txt”,显示内容如下: 新建 文本文档.txt $STANDARD_INFORMATION (resident) $FILE_NAME (resident) $FILE_NAME (resident)$OBJECT_ID (resident) $DATA (resident)从显示内容可以看出文件的全部属性都是常驻属性,包括DATA属性,没有非常驻属性,所以,用

45、WINHEX打开MFT,查看该文件记录,有如下图的内容:图表 Error! No text of specified style in document.15 小文件的文件记录小目录的索引根属性可以包括其中所有文件和子目录的索引。参见下图图表 Error! No text of specified style in document.16 小目录的MFT记录大文件或大目录的所有属性,就不可能都常驻在MFT中。如果一个属性(如文件数据属性)太大而不能存放在只有1KB的MFT文件记录中,那么NTFS将从MFT之外分配区域。这些区域通常称为一个运行(run)或一个盘区(extent),它们可用来存储属性值,如文件数据。如果以后属性值又增加,那么NTFS将会再分配一个运行,以便用来存储额外的数据。值存储在运行中而不是在MFT文件记录中的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁