了解 ext2 文件系统

7 filesystems ext2

我正在尝试在 ext2 文件系统中查找已删除的 inode。这就是我正在采取的方法。但是我觉得我做错了什么。

  1. 我首先在超级块的开头寻找 1024 个字节

  2. 我知道块大小是 1024 字节,所以组描述符表从偏移量 2048 开始。

  3. 组描述符表对每个块组都有一个组描述符,对吗?所以我计算了组描述符或块组的数量:每组的 inodes/inode 总数。这给了我值 8,这意味着我的块组描述符表中有 8 个组描述符。

  4. 我读取了所有 8 个组描述符的 first_inode_table 字段。组描述符的长度为 32 个字节

    所以这就是我感到困惑的地方。第一个组描述符的 inode 表给了我 260。那么这是否意味着要访问第一个块组的 inode 表我做 260*blocksize?

  5. 到达那里后,我正在阅读 dtime 字段 - 它告诉我们上次删除的时间。如果该值 >0,则表示它已被删除。

    所以我的另一个困惑是,据说 inode 表的前 11 个条目是保留的。所以只要我遍历 inode 表的所有 inode 条目,这应该不是问题吗?

我的方法正确吗?如果您看到错误,请指出正确的方向。