以下の内容はhttps://kernhack.hatenablog.com/entry/2014/01/29/015508より取得しました。


ext4:ディスクレイアウトのめも2

Ext4_Disk_Layoutの「Finding an Inode」を見ていて気づいたところのめも。前回の日記でも同じようにやってたはず。。。

ブロックグループは以下の式で。

bg = (inode_num - 1) / sb->s_inodes_per_group.

test.txtの場合は。

(0xC - 1) / 0x2000

だから

masami@saga:~/codes/read_ext4$ echo "obase=16;ibase=16; B/2000" | bc
0

inodeのインデックスは

index = (inode_num - 1) % sb->s_inodes_per_group

なので

masami@saga:~/codes/read_ext4$ echo "obase=16;ibase=16; B%2000" | bc
B

最終的なアドレスは

addr = index * sb->s_inode_size.

ということで、

masami@saga:~/codes/read_ext4$ echo "obase=16;ibase=16; B*100" | bc
B00

あとはこのB00にinodeテーブルの開始アドレスを足せばOK。

そうするとブロックグループ0のinodeテーブルを見るのは間違っていなかったということで。




以上の内容はhttps://kernhack.hatenablog.com/entry/2014/01/29/015508より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14