我正在尝试在 ext2 文件系统中查找已删除的 inode。这是我采用的方法。但是我感觉我做错了什么。
我首先寻找 1024 字节到超级块的开头
我知道块大小是 1024 字节,所以组描述符表从偏移量 2048 开始。
组描述符表对每个块组都有一个组描述符,对吗?因此,我计算组描述符或块组的数量:总 inode 数/每个组的 inode 数。这给了我值 8,这意味着我的块组描述符表中有 8 个组描述符。
我读取了所有 8 个组描述符的 first_inode_table 字段。组描述符的长度为 32 字节
这就是我感到困惑的地方。第一个组描述符的 inode 表给了我 260。那么这是否意味着要访问第一个块组的 inode 表,我需要执行 260*blocksize?
一旦到达那里,我就会读取 dtime 字段 - 它告诉我们最后删除的时间。如果它大于 0,则表示它已被删除。
所以我的另一个困惑是,据说 inode 表的前 11 个条目是保留的。所以只要我浏览了 inode 表的所有 inode 条目,这应该不是问题,对吗?
我的方法正确吗?如果您发现错误,请指出正确的方向。