[电脑基础知识]NTFS文件系统.doc
《[电脑基础知识]NTFS文件系统.doc》由会员分享,可在线阅读,更多相关《[电脑基础知识]NTFS文件系统.doc(42页珍藏版)》请在三一办公上搜索。
1、NTFS文件系统NTFS(New Technology File System,新技术文件系统),是以MFT(Master File Table,主文件表或主索引记录)为核心,将整个分区的系统文件和用户文件有机地组织起来的文件系统。NTFS最基本的原则:磁盘上任何对象包括目录都是一种文件,都使用文件记录进行管理。所有与文件相关的项目,包括数据都被认为是属性。属性分常驻(在记录中)和非常驻两种,非常驻的大文件夹使用B树结构进行管理。簇是NTFS最小的基本单位,一个1字节的文件也要占用一簇的空间。流是NTFS最基本的存储单元,是文件属性和属性值的集合。MFT文件MFT的位置和作用:MFT文件和它的
2、备份,位于NTFS分区中部,前后都是数据区,能更好地受到保护。与FAT系统先放文件分配表,后接数据区的做法不同。XP系统的NTFS分区,大致布局如下图:DBR引导区用户数据MFT区用户数据MFT部分记录备份用户数据DBR备份分区所有的文件,其相关的文件信息都保存在MFT中。小于1K的小文件(目录),其整个内容都保存在MFT中。大于1K的大文件(目录),只有它的起始信息保存在MFT中。在NTFS中,文件通过主文件表MFT定位。MFT是组织、架构NTFS文件系统最主要的数据库文件,对NTFS分区的性能有着至关重要的影响。ID编号(MFT Entry Value,文件号):分区中的所有文件和目录(包
3、括MFT文件自身),都被系统ID编号(编号0为MFT文件),并将它们的各类属性、起始信息或全部内容,以文件记录的形式,保存在MFT中。分区高级格式化成NTFS文件系统时,首先建立了一个主文件表MFT。在MFT文件中,会预先建立16个重要的文件(MFT记录的ID编号固定为0-15)和8个保留文件(MFT记录的ID编号固定为16-23),这24个文件是被称为元文件(Metafiles)或元数据(metadata)的系统文件(具体内容见后面),供系统本身组织、架构文件系统使用。而用户的文件在MFT中的ID编号从24后开始排,用户每添加一个文件,ID号加1。当某文件被删除时,与之对应的MFT记录将被空
4、出来,如果此时再添加文件,系统会优先填充ID小的空位。MFT尽量保持其物理上的连续性,可将磁盘碎片降至最低。 MFT的大小和记录结构:MFT文件在创建时非常小(大约16KB),其大小是随着磁盘文件的增加而增加。MFT文件默认占用该分区12(1/8)的空间(MFT区域)。当用户文件空间不足时,系统会把MFT空间分配给用户文件。当有剩余空间时,这些空间又会被重新划分给MFT。MFT的每一编号对应一个MFT的文件记录(File Record,FR),又称文件记录段 (FRS)。一个MFT文件记录的大小一般为1KB(两扇区)。每一个或多个文件记录对应本分区一个文件。第一个MFT文件记录就是MFT本身。
5、文件记录由记录头和属性列表组成(见下图):MFT记录头(属性头):为前部为一个包含几十个字节的具有固定的大小和结构的部分,是每一个MFT记录都有的。起始字节是46 49 4C 45,相应的ASCII码是FILE。属性列表(list):为MFT记录的主体,长度可变,起始偏移为0x30(相对于记录首字节的偏移),用于存放文件各种属性(大小、位置、时间等)。属性的内容详见后面。常见的是标准属性(0x10)、文件名属性(0x30)、数据流属性(0x80)和位图属性(0xB0)等,一个文件记录至少包含0x10和0x30属性。而每一属性又都有属性头(header)和属性体(body)的结构。MFT的结束标
6、志为FF FF FF FF(严格说是上面属性的结束,下一个属性开始)。一个文件记录的简单结构示意图: 一个文件记录文件记录头文件属性列表属性1属性头属性体属性2属性头属性体属性3属性头属性体结束标志FF FF FF FF每一个属性都含有属性头(header)和属性值(body,内容)两部分。 $MFT文件首扇(即MFT自身的记录,属性有0x10 0x30 0x80 0xB0,以颜色为区分):各种文件和目录的MFT基本文件记录:1小文件、小目录(1K以下):不管它是在根目录下还是在多层文件夹中,它们的信息以及内容都只用MFT基本文件记录来保存,没有外部簇(见下面的MFT结构图)。2大文件(1K以
7、上):在它的MFT基本文件记录中,其80数据属性有数据运行(data runs)指针(包含数据所在的地址和大小),指向它在MFT外的数据内容,但这些运行不是索引块记录,只是数据簇。3大目录:它既在MFT中有一基本文件记录,又在MFT外有一个或多个的索引块记录。大目录的MFT记录中,其索引根属性(90属性),里面仅包含少数下级目录的索引项;而多数的下级文件(夹)的索引项,是保存在MFT之外的簇中。这些外部簇(即索引块),是由90属性后的索引分配属性(A0属性)指引出来的。在A0属性里包含有指向索引块的运行(data runs)指针(同80属性的data runs含义一样)。每一个运行指向一个或连
8、续的多个索引块,被称为一个连续的“片断”( Fragment)。在MFT记录中,90属性是目录的标志,A0属性是大目录的标志。4元文件:如$LogFile、$Bitmap、$Boot和$MFT等,它们都是大文件。如$MFT文件,它就包括了所有的MFT文件记录。在MFT中 ID号为7的$Boot文件,其“data runs”内容位于分区开头的逻辑0扇至15扇,共16个保留扇区(逻辑0扇即分区启动扇区)。在MFT中,ID号为5的元文件$Root,为一个大目录(即分区根目录),有自己多达几簇的索引块记录。因为它的MFT记录中,无80属性,只有90属性(索引根)和A0属性(索引分配)。一句话就是,不管
9、大小目录还是大小文件,它的基本文件记录都在MFT中保存。任何大目录或大文件,都能在MFT找到它的最初线索。MFT结构示意图:MFT记录和索引块记录的区别:记录(Record)类型有MFT文件记录、索引块记录、日志记录等。MFT文件记录(FR):以“FILE”签名的扇区都是MFT文件记录,且都位于MFT区域中。索引块记录(目录项记录):为大目录的索引,以49 4E 44 58开头,ASCII码为“INDX”。一般为1簇(一般为4K,即8扇)大小,大多位于MFT之前。一个目录可以拥有多个索引块。由标准索引头和多个索引项组成,记录其下子目录和文件的名称和地址、大小等信息。作为MFT记录外部簇的索引块
10、,是由它的MFT基本文件记录(即大目录在MFT中的起始记录)的A0属性(索引分配属性)中的运行指针(含地址和大小)引出来的。有多重目录的,一层一层地索引下去,直到各文件的数据区域。MFT的基本特点:1. 卷中所有文件通过MFT来确定其在磁盘上的存储位置。2NTFS系统的高效,与MFT文件记录在磁盘上存储的连续性关系很大。MFT文件记录数组(从0开始编号)在物理上是连续的,但空间不足时MFT会产生碎片,磁盘碎片整理程序无法对MFT进行整理。一般一旦发生MFT损坏,你硬盘上的数据就会丢失。3.一个文件的MFT记录中,如果有80属性,它就是一个文件;有90属性及A0属性,它就是一个目录。MFT的分配
11、状态也在一个$BITMAP属性文件中进行描述。4. 如果一个文件的属性较多,可以使用多个记录,第一个记录被称为基本文件记录(Base File Record)或基本MFT项,存储有其它相关文件记录的位置、大小等信息。5.所有的记录包括目录记录、日志记录等,第一个区域都有相同的签名(如FILE、INDX)。如果发现错误,可能将其改写成“BAAD”的字样。6. 修正值(Fixup Value):MFT记录、目录项记录和日志记录的每个扇区的结束两个字节都有一个修正值,用来确定记录是否被完全正确地写入存储设备。详见后面更新序列号及数组部分。7. 文件引用号(File Reference Number,
12、也称文件索引号):MFT中每个文件都有64bit的唯一标识。它由两部分组成:一是48位的文件ID编号(MFT Entry Value,文件号)。二是文件顺序号(Sequence Number,SN),16位,随每次文件记录的重用而增加,这是NTFS为进行内部一致性检查而设计的。MFT的其它特点:1. 系统盘的MFT文件,通常要大于存储盘的MFT文件,因为系统盘的小文件更多。2.能保存在MFT中的小文件,其内容实际上只能在0.5K左右,因为两扇区的记录空间除了MFT头和10、30等常规属性外,不足以保存接近1K(如0.9K)的数据内容。而保存在MFT中的小目录,其索引根属性(90属性)一般只能达
13、到0.7K左右。所以,超过0.5K左右的小文件,还有在记录中有两个30属性的小文件,以及90属性超过0.7K左右的小目录,一般都只能像大文件和大目录一样,需要自己的外部簇链接了。3在Windows 2000/XP中MFT不能使用dir命令(包括加上/ah参数)查看。微软公司因此提供了一个NFI.EXE,用此工具可以转储NTFS主文件表的重要的元数据文件。在WINHEX中带有NFI.EXE,用此工具可以显示这些记录与文件的对应关系。DOS下使用NFI:C:nfi C: |MORE。4MFT空间的管理:可以在HKEY_LOCAL_MACHINESYSTEMCurrentControlSet Con
14、trol FileSystem中增加一个类型为REG_DWORD的NtfsMftZoneReservation,它的缺省值是1,其范围是1-4(1表示MFT占整个卷的12.5%,2表示25%,3表示37.5%,4表示50%)。实际上这个值已远大于分区的MFT实际分配和使用大小,现在几百G的硬盘,一个分区的MFT一般就是几十百来兆。5注意:从FAT转换过来的NTFS,性能有折扣。如果分区是从FAT32转换为NTFS文件系统的(使用命令为“CONVERT 驱动器盘符 /FS:NTFS”),不仅MFT会很容易出现磁盘碎片(MFT记录不再是连续的),更糟糕的是,磁盘碎片整理工具往往不能整理这个分区中的
15、MFT,严重地影响系统的性能和降低了文件的可恢复性。因此,建议将分区直接格式化为NTFS文件系统。NTFS5中所有的元文件:元文件的文件名都以“$”开头,是存储在卷上支持NTFS格式管理的数据,是隐藏文件,不能被应用程序访问,只能为系统提供服务。元文件在MFT中的ID编号为0-23号。序号元文件功能0$MFT主文件表本身1$MFTMIRR主文件表的部分镜像2$LOGFILE日志文件3$VOLUME卷文件4$ATTRDEF属性定义列表5$ROOT根目录6$BITMAP位图文件7$BOOT引导文件8$BADCLUS坏簇文件9$SECURE安全文件10$UPCASE大写文件11$EXTEND MET
16、ADATA DIRECTORY扩展元数据目录12$EXTEND$REPARSE重解析点文件13$EXTEND$USNJRNL变更日志文件14$EXTEND$QUOTA配额管理文件15$EXTEND$OBJID对象ID文件16-23保留23用户文件和目录MFT中的第1个记录就是MFT自身,也就是将整个MFT看做一个文件。鉴于MFT的重要性,系统专门为它准备了一个镜像文件($MftMirr),也就是MFT中的第2个记录。第3个记录是日志文件($LogFile)。该文件是NTFS为实现可恢复性和安全性而设计的。当系统运行时,NTFS就会在日志文件中记录所有影响NTFS卷结构的操作,包括文件的创建和改
17、变目录结构的命令,例如复制,从而在系统失败时能够恢复NTFS卷。第4个记录是卷文件($Volume),它包含了卷名、被格式化的卷的NTFS版本和一个标明该磁盘是否损坏的标志位(NTFS系统以此决定是否需要调用Chkdsk程序来进行修复)。第5个记录是属性定义表($AttrDef,attribute definition table),其中存放了卷所支持的所有文件属性,并指出它们是否可以被索引和恢复等。第6个记录是根目录($Root ),其中保存了存放于该卷根目录下所有文件和目录的索引。在访问了一个文件后,NTFS就保留该文件的MFT引用,第二次就能够直接访问该文件。 第7个记录是位图文件($B
18、itmap)。NTFS卷的分配状态都存放在位图文件中,其中每一位(bit)代表卷中的一簇,标识该簇是空闲的还是已被分配了的,由于该文件可以很容易的被扩大,所以NTFS的卷可以很方便的动态的扩大,而FAT格式的文件系统由于涉及到FAT表的变化,所以不能随意的对分区大小进行调整。第8个记录是引导文件($Boot),它是另一个重要的系统文件,存放着Windows系统的引导程序代码。该文件必须位于分区逻辑0扇才能够正确地引导系统。它由Format程序创建的,虽然享受NTFS系统的各种安全保护,但还是可以通过普通的文件I/O操作来修改。第9个记录是坏簇文件($BadClus),它记录了磁盘上该卷中所有的
19、损坏的簇号,防止系统对其进行分配使用。第10个记录是安全文件($Secure),它存储了整个卷的安全描述符数据库。NTFS文件和目录都有各自的安全描述符,为了节省空间,NTFS将具有相同描述符的文件和目录存放在一个公共文件中。第11个记录为大写文件($UpCase,upper case file),包含一个大小写字符转换表。第1216个记录见表中解释。第1723记录是是系统保留记录,用于将来扩展。第25个和之后记录即为非系统的用户文件。NTFS的管理方法B树结构:大于一个MFT记录的文件夹,使用B树(B-Tree)结构进行管理。MFT文件的索引分配属性(A0属性)中,都包含了一个指向外部簇(索
20、引缓冲区)的指针。非常驻的外部簇用来存储那些MFT内存储不了的下一级子目录和文件。如下图:FAT文件系统簇号指针在FAT表中,而NTFS中簇号指针包含在$MFT和$MFTMirr文件中。在目录中查找文件是按B树的搜索方法,先搜索根节点(根目录),然后根据文件名确定在哪个子节点区域中,然后再以子节点为当前的根节点去搜索,直到找到文件为止。查找速度甚至比访问较小的文件夹中的文件还快。属性分常驻属性和非常驻属性:小文件和目录将全部(内容或索引信息)存储在MFT基本的文件记录里,其属性就称为常驻属性(resident attribute)。标准信息、文件名和索引根等属性总是常驻属性。NTFS对常驻属性
21、的访问时间短。大文件(目录)如果属性值超过1KB时,在基本的文件记录中就用一个指针指向MFT基本文件记录之外的一个外部簇,以此形成B-Tree(B树)结构。值存储在运行中而不是在MFT文件记录中的属性称为非常驻属性(nonresident attribute)。这些外部簇通常称为一个运行(run或Data Run)或一个盘区(extent),它们可用来存储属性(如索引项)或属性值(如文件数据)。非常驻数据Runlist(运行列表)的解析:表示非驻留数据(外部簇)位置信息的Runlist,由若干个Run (data runs,数据流)组成。每个流(run)描述的第一个字节表示两个数据的占用字节数
22、:高4Bit描述数据的起始簇号,低4Bit则指明了数据占用的簇的数目(流尺寸)。它们都是可变长度的。即:1.若数据的值小于128,则占用1个字节。2.若数据的值大于128但小于32768,则占用2个字节。(2的16次幂除以2)3.若数据的值大于32768但小于8388608,则占用3个字节。(2的24次幂除以2)4.若数据的值大于8388608,则占用4个字节。第一个run的起始簇号,是从逻辑0簇到第一个run的起点间的簇数,为LCN。值得注意的是,从第二个Run开始,起始簇号是从上一个Run的起点开始计数的,而不是相对于分区开头的第0簇。下面是一个Runlist 的例子(数据均用16进制表示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电脑基础知识 电脑 基础知识 NTFS 文件系统
链接地址:https://www.31ppt.com/p-4558895.html