ext2で見つかったすべての出版物において、ブロックグループの構造は次のように定義されます。
- スーパーブロック:1ブロック
- グループ記述子:Nブロック
- データビットマップ:1ブロック
- Inode ビットマップ: 1ブロック
- インデックスノードテーブル:Nブロック
- データブロック:残りのブロック
しかしext2カーネルドキュメントバージョン> 0は、各ブロックグループにスーパーブロックとグループ記述子のコピーを保存しない可能性があります。
ext2パーティションを使用すると、fsstat
次の結果が表示されます。
Group: 1:
Inode Range: 1977 - 3952
Block Range: 8193 - 16384
Layout:
Super Block: 8193 - 8193
Group Descriptor Table: 8194 - 8194
Data bitmap: 8451 - 8451
Inode bitmap: 8452 - 8452
Inode Table: 8453 - 8699
Data Blocks: 8700 - 16384
Free Inodes: 1976 (100%)
Free Blocks: 0 (0%)
Total Directories: 0
Group: 2:
Inode Range: 3953 - 5928
Block Range: 16385 - 24576
Layout:
Data bitmap: 16385 - 16385
Inode bitmap: 16386 - 16386
Inode Table: 16387 - 16633
Data Blocks: 16387 - 16386, 16634 - 24576
Free Inodes: 1976 (100%)
Free Blocks: 0 (0%)
この出力に関する2つのことが私を混乱させます。
SBグループとグループの説明。保存時のグループ記述の間には256ブロックの間隔があります。とデータビットマップ。 編集:
dumpe2fs
GDTブロックを使用して、これが予約されていることがわかりました。オンラインサイズ変更用。 もしそうなら、新しい質問は、予約されたGDTブロックのサイズがどのように決定されるかです。Data Blocks: 16387 - 16386
グループ2はどういう意味ですか?
答え1
resize_inode関数は、GDTが大きくなるようにこれらのブロックを予約するために隠されたinodeをdebugfs
生成します。stat <7>
デフォルトでは、ファイルシステムを元のサイズの1024倍に増やすのに十分なスペースを予約します。mke2fs
フォーマット時に機能を無効にするか、サイズ変更オプションを使用できます。
グループ2:16387 - 16386のデータブロックはどういう意味ですか?
負のサイズ(開始前の終わり)の範囲を持つことができないため、これはプログラムのバグのように見えます。