NTFS中的根目录是一个普通的目录,如果卷有一个重解析点,那么根目录就会有一个命名数据流,称作$MountMgrDatabase;如果卷没有重解析点,则没有这个命名数据流。

元文件$Root是用来管理根目录的,其文件名实际上是“.”,它包含6个属性,如图4-456所示。

元文件$Root分析-数据恢复迷

图4-456 根目录的文件记录

(1)10H属性

10H属性定义了根目录创建的时间、最后修改时间、该MFT修改时间、该文件最后访问时间、文件标志(此处值为26H,表示其为存档、隐藏、系统文件)等信息。

(2)30H属性

30H属性定义了根目录的父目录的文件参考号为根目录本身、根目录的一些时间属性、系统分配给根目录的大小(这里为0字节)、实际使用的大小(这里为0字节);定义了文件的标志为10000006H,表示其为目录、存档、隐藏、系统文件;并定义了该文件的文件名长度为1个字符,命名空间为3;在属性的最后定义了该文件的文件名为Unicode字符串“.”。

(3)50H属性

50H属性定义了该文件的安全信息。

(4)80H类型属性

80H属性只有当卷有重解析点时才有,本例中并没有该数据流。当卷上有一个重解析点时根目录文件就会有一个名字为“$MountMgrDatabase”的命名数据流,它由一些重复的组组成,见表4-81。

表4-81 $MountMgrDatabase数据流

字节偏移 字段长度(字节) 描述
0x00 4 入口大小
0x04 4 标志
0x08 2 UNC路径偏移
0x0A 2 UNC路径大小
0x0C 2 数据偏移
0x0E 2 数据大小

(5)90H属性

90H属性是索引根属性,为非常驻属性,属性名为“$I30”,表示其为文件名索引。属性中定义了90H属性的索引属性类型为30H,也就是30H类型的索引;定义了单位字节的索引分配的大小(这里为1000H)、每索引记录的簇数(这里为01)等。

(6)A0H属性

根目录的索引分配属性定义了根目录索引缓冲区的开始VCN和结束VCN,以及数据流的起始LCN和占用的簇数。本例中根目录索引缓冲区开始于4014H簇,占一个簇。根目录A0H属性的数据流是一些索引项的集合。

(7)B0H属性

根目录的B0属性被命名为“$I30”,表示其为目录。该属性是由一系列的位构成的虚拟簇使用情况表,它标记了根目录哪些虚拟簇已被使用。当前属性的属性体为“01H”,也就是说只占用了0号VCN一个簇。