最近,我遇到了一个未知问题,导致NTFS文件夹中的特定文件夹在多台计算机中被破坏。我需要检测文件夹是否已损坏并执行重定位文件夹或发送通知等操作。但是我不知道怎么做。正常的API,如OpenFile / CreateFile似乎与损坏的文件夹出现故障,我无法使用它们来确定文件夹是否已损坏。所以我打算解析MTF结构并直接检查问题。
因此,我开始研究NTFS MFT结构。我发现$ Volume有一个脏标志来确定驱动器是否需要chkdisk。但它与文件损坏没有直接关系,如果Windows意外关闭,它将被设置。 DI未能找到特定标志或任何内容来确定MFT结构中的INDEX或FILE是否已损坏。
我能否知道是否有办法确定损坏的NTFS文件夹?
感谢任何帮助!
答案 0 :(得分:0)
我发现了3件与NTFS磁盘损坏问题有关的事情。它不完整;但是,如果没有更新的NTFS源代码,很难找到微软在chkdisk中真正做的事情。如果有人需要知道,我会发布我发现的内容。
“文件记录”部分的$ BadClus中的1个脏标志
如果$ BadClus中的标志设置为ON,则操作系统将在启动时执行磁盘扫描。我相信如果遇到磁盘操作,NTFS模块会将标志设置为ON。
文件记录的识别字段中的“BAAD”
如果文件记录有问题,例如USA / USN不匹配,则MFT可以在文件记录结构的标识字段中将“FILE”替换为“BAAD”。它可以用于快速识别损坏的文件/目录。
3在每个FILE / INDX记录中比较USA / USN
两个FILE / INDX结构都包含USA / USN进行损坏检查。扫描系统并比较USA和USN可以帮助您发现腐败问题。