元文件中最重要的是$MFT文件。在前文的学习中已经以$MFT文件为例对它的结构做过详细分析,这里就不重复了。下面从$MFT文件的镜像$MFTMirr文件开始分析。
$MFTMirr是系统以恢复为目的而创建的文件,它将$MFT文件中的几个记录做了备份。具体备份多少个文件记录取决于NTFS卷中每个簇的大小,至少需要做前4个文件记录的备份。当卷中簇远小于或等于4倍的文件记录大小(即小于或等于4KB)时,$MFTMirr就做前4个文件记录的备份。在Windows2003、Windows XP系统中默认的格式化簇的大小就是4KB,所以卷中的$MFTMirr大多只做了前4个文件记录的备份。如果簇的大小大于4KB时,那么$MFTMirr的数据流大小就等于一个簇,在一个簇中能备份多少个文件记录就会备份多少个,但一定是按文件记录的顺序进行备份的。例如,当簇大小为8KB时,那么$MFTMirr的数据流大小也就是8KB,从而可以包含前8个文件记录的备份。
$MFTMirr的文件记录号为01H,一般由以下3种属性组成,如图4-431所示。
10H属性定义了$MFTMirr的创建时间、最后修改时间、该文件记录修改时间、文件最后访问时间及标志等信息。具体参数见其模板,如图4-432所示。
30H属性定义了$MFTMirr的父目录的文件参考号、系统分配给整个磁盘的MFTMirr的大小、实际使用的大小;再次定义了文件的标志为06H,表示其为隐藏、系统文件;定义了该文件名属性的文件名的长度为8个字、命名空间为3,即Win32 & DOS;在属性的最后定义了该文件的文件名为Unicode字符串“$MFTMirr”。具体参数如图4-433所示。
80H属性定义了$MFTMirr数据流的起始VCN(本例中为0)、结束VCN(本例中为1)、起始LCN号(本例中为10H),以及所占的簇数(本例中为01H)等信息,如图4-434所示。
在80H属性之后跟着4个字节的“FF FF FF FF”,这是属性的结束标志,到此为止该文件记录中的属性就结束了。