NTFS 结构说明.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NTFS 结构说明

NTFS 结构说明 NTFS 结构说明 关键字:Windows NT NTFS 文件系统 MFT 在Windows NT?中,Microsoft使用了一种新型的文件系统NTFS,它针对FAT/FAT32文件系统安全性差、容易产生碎片、难以恢复等缺点作了重大改进,使得系统总能保持较好的性能。不过使用NTFS的分区只能被Windows NT?系统识别和操作,而且它的结构是Microsoft的内部机密,没有任何官方文档。因此给各位需要在非Windows NT?环境读写NTFS分区的编程人员带来了巨大不便。不过好在还有很多人在研究分析它,现在结合网上搞到的一些资料和我自己的分析对NTFS作一个说明(可惜还是有很多东西没能搞明白)。 一、 概述 在NTFS中一改FAT/FAT32中将文件分配表等系统数据放在分区最前面,然后接着才是数据区的做法,把所有的信息都组织起来以文件的形式存放,包括扇区分配表,引导记录等数据都是作为文件存在于磁盘中。其中只有$Boot(分区引导记录)文件的位置是固定存放在分区首部,其他的文件都可以随意存在于分区中的任何一个位置。这样使得对所有数据的读写都有一个较为统一的方法,而且使得改变分区的尺寸和碎片整理变得非常容易。 在NTFS分区中,存储分区信息的文件被称为系统文件。在每个NTFS分区中都有十个这样的系统文件,它们分别是: $MFT $MFTMirr $LogFile $Volume $AttrDef . (分区根目录) $Bitmap $Boot $BadClus $Secure $UpCase $Extend 下面分别对每个系统文件的作用及所保存的信息作一个说明: $MFT(Master File Table)文件。这个文件是NTFS分区中最重要的文件,它记录了分区中所有文件(包括$MFT自身)的基本信息。通过$MFT就可以访问分区中的所有文件和系统数据。$MFT由多个MFT记录单元组成,每一个文件的描述占用一到多个(一个不够的情况下)$MFT记录单元。其中前十二个记录单元中记录着上面的十二个系统文件的信息。每个记录单元记录着文件的建立时间、在分区中的位置、长度、属性、文件名等信息。信息在MFT单元中用各种属性来表示,不同的属性代表着不同的信息,而文件或目录中的内容则表现为属性中的外部或内部(取决于数据的长度)附加数据。其记录格式见下面的MFT格式说明。 $MFTMirr(Mirror of Master File Table) 文件。这个文件是$MFT文件的一个备份,它保存着$MFT文件前4个记录单元的信息。格式同$MFT。 $LogFile文件。记录中对分区的操作的日志信息。(日志记录具体格式不明) $Volume文件。保存着分区建立时间,分区版本等信息。 $AttrDef文件。记录的MFT单元中的属性的基本信息,包括属性的名字,最大最小尺寸等 . (分区根目录)文件。作用同FAT/FAT32中的根目录,但记录格式有所变化。关于记录格式的描述请参考目录项存储区格式。 $Bitmap文件。记录着分区中存储单元(簇)使用状况。类似于FAT/FAT32中的FAT表,但不以索引的形式记录,而是每一个Bit表示一个簇。其值为1表示该簇已被使用,为0则表示空闲。 $Boot文件。NTFS分区的引导记录。在NTFS分区引导系统时负责将NTLDR装入内存并将控制权交给它。其中记录着分区的总扇区数,分区中每个存储单元(簇)包含的扇区数,$MFT所在的簇的簇号,$MFTMirr所在的簇的簇号和分区引导例程等重要信息。其格式见后面的$Boot文件格式说明。注意:在NTFS分区中$Boot文件的位置固定在分区开始处。 $BadClus文件。似乎是记录着分区中有效(可以正常使用)的簇的个数和分区有效容量(以字节为单位)。因为我手里没有有坏道的硬盘,所以不敢肯定。 $Secure文件。就其名而言似乎是系统安全描述,不过没有研究过。 $UpCase文件。Unicode编码下的大写字母表。 $Extend文件。用于和HPFS兼容的信息。 二、 读写操作流程 在非NT的系统中对NTFS分区中的文件进行自由的读写操作才是我们研究NTFS分区格式的最终目标。下面我就对整个读操作的流程来一个说明: 首先从硬盘的分区表中计算出分区开始的位置,再读取分区数据区中的第一个扇区($Boot文件的第一个扇区)从中取得隐藏扇区数目,$MFT开始的簇号,每簇扇区数,每个MFT记录的尺寸。通过这些数据计算出$MFT所在的位置,读取第一个MFT记录,然后按照记录中描述的$MFT文件的存放位置读出文件名为“.”的MFT记录(根目录文件)。然后在该记录中有哪些信誉好的足球投注网站要求的目录项。找到以后,获得它的描述在$MFT中的索引,再在其中寻找下级目录的

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档