【问题标题】:ext4 inode data location math?ext4 inode 数据位置数学?
【发布时间】:2014-04-20 12:11:57
【问题描述】:

我正在尝试从带有坏超级块的 RAID 5 中恢复数据。我用 g++ 编写了一个工具,它可以让我同时从所有 3 个驱动器中转储数据,并且如果有一个丢失的驱动器,它将从丢失的驱动器中创建数据。没有。我确实知道一个驱动器不是 100% 同步的,因此该功能以后可能会派上用场。它还具有 ASCII 搜索功能,有助于查找目录,但可能需要两天时间才能完成对 3TB 数据的搜索。

无论如何,问题是我如何计算我想要从 inode 编号转储的块?当通过我的 inode*16+36984 等式运行时,inode 编号 0x02E00001 将我指向 inode 0x02E0A007 和 0x02E0A007,它们是存储在 2 个 RAID 驱动器上的数据,我将始终有机会找到 2 个目录。但是,我的数学计算出 0xA000 inode 为高。在过去 2 天的所有计算中,这是我似乎能够得到的最接近的结果。

如果 1 除以 2,则 36984 可能是 inode 零位置,因为数据在 2 个驱动器上进行条带化以用于 RAID。我根据找到位于转储位置 37000 或 ext4 位置 74000 的 inode 2 的根目录来计算这个数字。

【问题讨论】:

    标签: raid ext4


    【解决方案1】:

    好的,如果我错了,请纠正我,但看起来简单的答案是您无法根据 inode 编号计算块位置。在更彻底地阅读了 linux ext4 文档之后,因为没有人回答这个问题,我没有想法。我发现了一个关于 ext4 范围树的文档记录不佳的部分。显然,这就是您找到数据位置的方式。我会在明天或周一对此进行更多研究。

    【讨论】:

      【解决方案2】:

      找到了我的问题的答案。我已经在GitHub 发布了我正在编写的程序。我已对齐 RAID 驱动器并且可以读取 inode 数据。接下来是拉取文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-18
        • 2020-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-08
        • 2020-03-14
        • 1970-01-01
        相关资源
        最近更新 更多