Ext2について私が見つけたすべての出版物では、ブロックグループの構造は次のように定義されています。
ただし、 ext2 kernel doc には、バージョン> 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ブロックのサイズはどのように決定されるのかということです。
グループ2のData Blocks: 16387 - 16386
はどういう意味ですか?
Resize_inode機能は非表示のiノード(番号7、debugfs
でstat <7>
を使用して表示できます)を作成して、GDTを拡張できるようにそれらのブロックを予約します。デフォルトでは、ファイルシステムを元のサイズの1024倍に拡張するのに十分なスペースが予約されています。フォーマット時にmke2fs
のオプションを使用して、機能を無効にしたり、サイズを調整したりできます。
データブロック:グループ2の16387〜16386とはどういう意味ですか?
負のサイズ(開始する前に終了する)の範囲を設定することはできないため、これは単にプログラムのバグのように見えます。