最近,我遇到一个未知的问题,导致NTFS文件夹中的特定文件夹在多台计算机上损坏。我需要检测文件夹是否已损坏,并执行重新定位文件夹或发送通知等操作。然而,我还不知道该怎么做。正常的API,如OpenFile/CreateFile,似乎在损坏的文件夹中运行不正常,我无法使用它们来确定文件夹是否损坏。因此,我计划解析MTF结构,并直接检查问题。
因此,我开始研究NTFS MFT结构。我发现$Volume有一个脏标志来确定驱动器是否需要磁盘。但它与文件损坏没有直接关系,并且将在Windows意外关闭时设置。DI无法找到特定标志或任何内容来确定MFT结构中的索引或文件是否已损坏。
我能否知道是否有方法来确定损坏的NTFS文件夹?
如有任何帮助,我们不胜感激!
发布于 2012-12-19 02:55:21
我发现了3件与NTFS磁盘损坏问题相关的事情。它是不完整的;但是,如果没有更新的NTFS源代码,很难找出Microsoft在chkdisk中真正做了什么。如果有人需要知道的话,我会把我找到的东西贴出来。
1“文件记录”部分的$BadClus中的脏标志
如果$BadClus中的标志设置为ON,则操作系统将在启动时执行磁盘扫描。我相信如果遇到磁盘操作,NTFS模块会将标志设置为ON。
2文件记录的标识字段中的"BAAD“
如果文件记录有问题,例如USA/USN不匹配,则MFT可以将文件记录结构标识字段中的" file“替换为"BAAD”。它可用于快速识别损坏的文件/目录。
3比较每个文件/INDX记录中的USA/USN
FILE/INDX结构都包含用于损坏检查的USA/USN。浏览整个系统并比较USA和USN可以帮助您发现损坏问题。
https://stackoverflow.com/questions/11060002
复制相似问题