趣味のOS用のext2ドライバーを作成しているときに、ブロックグループ記述子からiノードテーブルを読み取るときに問題が発生しました。
ブロックグループ記述子の3番目のフィールドは、そのグループのiノードテーブルのブロックIDです。私のファイルシステムのルートディレクトリの場合、これは64として返されます。スーパーブロックはブロック1にあり、ボリュームの先頭から1024バイト過ぎています。ブロックサイズは1024バイトですが、私のディスクセクターサイズは512です。したがって、スーパーブロックにアクセスするために、lba2から読み取ります。
問題は、iノードテーブルを読み取ろうとしたときです。ブロックIDが64で、ブロックサイズが1024、ディスクセクターサイズが512の場合、ディスクセクター130からiノードテーブルを読み取りませんか?私はそれをしますが、何もありません...
有効なブロックグループ記述子が与えられた場合にiノードテーブルを読み取る適切な方法は何ですか?