0

最近,我遇到了一个未知问题,导致 NTFS 文件夹中的特定文件夹在多台计算机中损坏。我需要检测文件夹是否已损坏并执行重新定位文件夹或发送通知等操作。但是我还不知道该怎么做。正常的 API,如 OpenFile/CreateFile 似乎因文件夹损坏而出现故障,我无法使用它们来确定文件夹是否损坏。所以我打算解析MTF结构并直接检查问题。

于是,我开始研究NTFS MFT结构。我发现 $Volume 有一个脏标志来确定驱动器是否需要 chkdisk。但它与文件损坏没有直接关系,并且会在 Windows 意外关闭时设置。DI 未能找到特定标志或任何东西来确定 MFT 结构中的 INDEX 或 FILE 是否损坏。

我能否知道是否有办法确定损坏的 NTFS 文件夹?

任何帮助表示赞赏!

4

1 回答 1

0

我发现了与 NTFS 磁盘损坏问题有关的 3 件事。它是不完整的;但是,如果没有更新的 NTFS 源代码,很难找出微软在 chkdisk 中真正做了什么。如果有人需要知道,我会发布我发现的内容。

“文件记录”部分的 $BadClus 中有 1 个脏标志

如果 $BadClus 中的标志设置为 ON,则操作系统将在启动时执行磁盘扫描。如果遇到磁盘操作,我相信 NTFS 模块会将标志设置为 ON。

2 文件记录标识字段中的“BAAD”

如果文件记录有问题,例如 USA/USN 不匹配,则 MFT 可以在文件记录结构的标识字段中将“FILE”替换为“BAAD”。它可用于快速识别损坏的文件/目录。

3 比较每个 FILE/INDX 记录中的 USA/USN

FILE/INDX 结构都包含用于损坏检查的 USA/USN。扫描系统并比较 USA 和 USN 可以帮助您发现腐败问题。

于 2012-12-18T18:55:20.790 回答