ext2ファイルシステムについて[終了]


8

ext2ファイルシステムで削除されたiノードを見つけようとしています。これが私が取っているアプローチです。しかし、私は何か間違っていると感じています。

  1. 私は最初にスーパーブロックの先頭まで1024バイトを探しています

  2. ブロックサイズが1024バイトであることを知ったので、グループ記述子テーブルはオフセット2048から始まります。

  3. グループ記述子テーブルには、ブロックグループごとにグループ記述子がありますか?したがって、グループ記述子またはブロックグループの数を計算します。グループごとのiノード/ iノードの合計。これにより、値8が得られます。これは、ブロックグループ記述子テーブルに8つのグループ記述子があることを意味します。

  4. 8つのグループ記述子すべてのfirst_inode_tableフィールドを読み取りました。グループ記述子の長さは32バイトです。

    だから私は混乱するところです。最初のグループ記述子のiノードテーブルから260が得られます。これは、最初のブロックグループのiノードテーブルにアクセスするために260 * blocksizeを実行することを意味しますか?

  5. そこに到達したら、dtimeフィールドを読んでいます。これは、最後に削除された時刻を示しています。それが> 0の場合は、削除されたことを意味します。

    したがって、もう1つの混乱は、iノードテーブルの最初の11エントリが予約されていると言われていることです。それで、iノードテーブルのすべてのiノードエントリを調べている限り、これは問題になりませんか?

私のアプローチは正しいですか?何かおかしいと思ったら、私を正しい方向に向けてください。


推論は正しいです。バグは別の問題によるものでした。

4
@Catieこの問題を解決した場合は、自分で回答を追加するか、単に質問を削除する必要があります。:-)
ジョンパーカー、

1
自分で答えを追加してください!
kalaracey

1
質問は別の問題であったため、解決されました。問題はもうなく、Catieが戻る可能性は非常に低いので、未回答リストのこの質問を手助けしてください...
Tamara Wijsman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.