与位腐烂相关的文件系统恢复,已知位翻转的位置

与位腐烂相关的文件系统恢复,已知位翻转的位置

位腐烂是真实存在的,发现一个例子后,我现在面临 HFS+ 文件系统错误调查——欢迎提出建议。

大家好,我在寻求有关下一步的建议,因为我发现两个 ~1.5 TB HFS+ 磁盘映像之间存在单个位翻转差异。

几年前,我决定自己应该更好地照看我的大量旧数据(主要是 Mac 数据)。我开始计划建立一个 ZFS 托管档案。随着我的老旧驱动器收藏越来越多,我不断地将文件以杂乱无章的方式复制到多个驱动器上(以尽量避免物理驱动器故障)。最近,我终于开始设置 ZFS 阵列,并设法将第一批旧档案数据复制过来。

也许是不太明智,急于恢复一些备用空间,我开始通过比较大小/修改日期等删除一些明显重复的文件。无论如何,我的一个重复文件是早期 1.5 TB 驱动器的旧磁盘映像,一时兴起,我想我会测试 ZFS 阵列的速度并仔细检查原始文件中没有损坏,通过 md5 对两个阵列托管副本进行求和并将每个副本相互比较,然后删除我认为是相同的副本之一……

好吧,我很惊讶,两个 1.5TB 的文件具有相同的字节长度和修改日期等,却有不同的哈希值!哎呀……

然后,我对这两个文件进行了逐字节比较(使用cmp -l),发现有一个不匹配的字节差异,有两个八进制表示形式(022 和 222)。...意思是,两个 1.5TB HFS+ 文件系统映像之间存在单个位翻转差异。

我已经检查过磁盘映像没有附加相关的校验和(MacOS 下的 DiskUtility 将生成...因为这样它就可以告诉哪个映像是“正常”并且 IO 可以删除有故障的文件...)但是在成像时都没有创建校验和。

现在怎么办?我想在文件系统映像中识别具有争议位的文件(毕竟它可能是一个不重要的文件..或旧的“可用空间”..但它也可能是非文件元数据;仅仅尝试读取以只读方式安装映像的文件可能会告诉我哪个映像正常,哪个不正常..但我如何将磁盘映像上的字节偏移位置映射到文件系统上的文件?)。

关于使用最佳工具/方法查找文件系统中哪个文件包含特定字节偏移量有什么建议?或者我错过的任何其他方法?也许是一种自动的方法,可以系统地比较已安装的 HFS+ 映像的一部分中的每个文件?我想可能可以编写一些脚本来对两者进行递归。但如果它没有给出一个干净的结果,那么我仍然一无所知。如果我可以将特定的字节位置映射到文件,那么应该会更快。(知道这一点会很有趣)。

非常感谢!

M.

相关内容