$BadClus元文件用于记录卷上的所有坏簇,它是一个稀疏文件,只有指向坏簇的数据流,应用程序不可访问该文件。$BadClus一般由4个属性构成,如图4-459所示。
图4-459 $BadClus的文件记录
(1)10H属性
10H属性定义了$BadClus创建时间、最后修改时间、该MFT修改时间、文件最后访问时间、文件标志等信息。
(2)30H属性
30H属性定义了$BadClus的父目录的文件参考号为根目录、$BadClus的一些时间属性、系统分配给$BadClus的大小(这里为0字节)、实际使用的大小(这里为0字节);定义了文件的标志为06H,表示其为隐藏、系统文件;定义了该文件的文件名长度为8个字符、命名空间为3,即Win32 & DOS命名空间;在属性的最后定义了该文件的文件名为Unicode字符串“$BadClus”。
(3)未命名80H属性
80H属性的未命名数据流总是0字节,只有一个属性头,没有属性体。
(4)命名80H属性
80H属性名为$Bad,其数据流是与卷大小相对应的文件,如果簇没有问题,就用0表示,否则就表示是一个坏簇。在一个簇中只要有一个扇区是坏的,则整个簇就都是坏簇,所有坏簇在$Bitmap文件中都被标记成已使用,这样就不会再被文件使用。
NTFS支持热修复,而不会像FAT那样出现“Abort,Retry,Fail?”,在系统运行时如果发现一个坏簇,它就自动被添加到$BadClus文件中,而不给出任何提示。如果该簇位于容错卷上,FtDisk(容错卷的驱动)将重新组织数据,并自动将它们存储在其他空闲簇中。