我已经恢复的硬盘的使用 dd_rescue, ,这为我提供了一个列表中的所有设备的部门,它不能复制由于硬件的错误。

我想把这列表,并编写一个工具,得到我的所有文件,包含这些糟糕的部门这样我就可以删除。我不知道什么Api我可以用来做这个...本质上我想得到一个列表中的所有磁盘上的文件和针对每个文件,列范围的部门,它占据上的磁盘。

我的第一个猜测是,我将迭代,每个目录项在磁盘和检查,以查看文件重叠,一些不好的部门。也许有一个更好的办法。

有帮助吗?

解决方案

如果你想要的地图文件的数据的位置的物理模块(部门),可以使用 fcntl(2) 呼叫与F_LOG2PHYS命令。不是所有的文件系统支持此命令的,但是粮食安+。只是使用lseek挑选的文件偏移,你可以拿回diskoffset从F_LOG2PHYS(这是返回的一个结构log2phys在l2p_devoffset场)。见fcntl.h用于更多的详细信息。

其他提示

有没有暴露的API为拔除奖励金通过粮食安+文件系统,但是 源于文件系统 可从苹果的一部分那么核心。还检查了 hfsdebug 工具,它可能有助于了解fs。

这是一个老问题,但由于它仍是排名靠前的搜索之间的话题的时候,这里的所有谁搜寻:

因为Mac OS X 10.6 fsck_hfs (8)可以物理扇区映射到文件(见选项-B)。使用情况的说明:如果匹配目录的检查实际进行才能取得成功。所以,你可能必须强制使用选项-l或-f检查。

顺便说一句,hfsdebug作为PPC二进制依赖于罗塞塔并且因此将不运行在狮子或更高版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top