2

ブロック グループ記述子テーブルを見つける方法を理解するのに問題があります。文献 (D.Poirier: " The 2nd extended filesystem ") では、ブロック グループ記述子はスーパーブロックの直後のブロックにあると述べられています。

ここで、ブロック サイズが 1024 バイトの最初のディスクを見ると、構造は次のようになります。

  • MBR、0 ~ 512 バイト
  • スーパーブロック、1536 ~ 2560 バイト
  • BG 記述子、2560 - ... バイト

スーパーブロックは 3 番目のセクターから始まり、BGD はその直後に続くため、この構造は問題ありません。ただし、ブロック サイズが 4096 バイトの 2 番目のディスクを見ると、構造は次のようになります。

  • MBR、0 ~ 512 バイト
  • スーパーブロック、1536 ~ 2560 バイト
  • BG 記述子、4608 - ... バイト

この場合、BGD はスーパーブロックから 3072(?) バイト離れた場所にあります。ext 構造を読み取って分析するプログラムを作成していて、BGD を見つける方法を知っている一般的なプログラムを作成できないため、BGD の位置がどのように正確に決定されるかを教えてください。

4

1 に答える 1

1

BGD 開始オフセットは、ブロック サイズ (1k、2k、4k) によって異なります。パーティションでは、最初の 1024 バイトが予約され、その後に 1024 バイトの SUPER BLOCK が続きます。ブロック サイズに応じて、BGD は次から始まります。

BLK=1K、BGD はパーティション オフセット 2048 (予約済み 1024 + 1024 スーパー ブロック) から開始します。

BLK=2K、BGD はパーティション オフセット 2048 (予約済み 1024 + 1024 スーパー ブロック) から開始します。

BLK=4K の場合、BGD はパーティション オフセット 4096 から開始します。これは開始から 1 ブロックです。つまり、スーパー ブロックから 3072 バイト離れていることがわかります。

于 2014-12-03T06:50:23.063 に答える