1

趣味のOS用のext2ドライバーを作成しているときに、ブロックグループ記述子からiノードテーブルを読み取るときに問題が発生しました。

ブロックグループ記述子の3番目のフィールドは、そのグループのiノードテーブルのブロックIDです。私のファイルシステムのルートディレクトリの場合、これは64として返されます。スーパーブロックはブロック1にあり、ボリュームの先頭から1024バイト過ぎています。ブロックサイズは1024バイトですが、私のディスクセクターサイズは512です。したがって、スーパーブロックにアクセスするために、lba2から読み取ります。

問題は、iノードテーブルを読み取ろうとしたときです。ブロックIDが64で、ブロックサイズが1024、ディスクセクターサイズが512の場合、ディスクセクター130からiノードテーブルを読み取りませんか?私はそれをしますが、何もありません...

有効なブロックグループ記述子が与えられた場合にiノードテーブルを読み取る適切な方法は何ですか?

4

1 に答える 1

1

ブロックグループ記述子テーブルのブロックIDはすべて絶対であるため、この場合、ブロックID64はLBA128および129に格納されます。

于 2011-09-29T05:17:57.643 に答える