mkfs ext2 は inode 番号を無視します。

mkfs ext2 は inode 番号を無視します。

ext2ファイルシステムを作成したいと思います。 「を設定したいです。インデックスノード数「特定の番号のオプションです。複数の値を試しました。

  • もし-N 99000その後、インデックスノード数:99552
  • もし-N 3500その後、インデックスノード数:3904
  • もし-N500その後、インデックスノード数:976

しかし、私の価値はいつもいいえ、同じです。。なぜ?

私はmkfsをこのように呼び出す

sudo mkfs -q -t ext2 -F /dev/sda2 -b 4096 -N 99000 -O none,sparse_super,large_file,filetype

このように結果を確認してみると

$ sudo tune2fs -l /dev/sda2
tune2fs 1.46.5 (30-Dec-2021)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          11111111-2222-3333-4444-555555555555
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              99552
Block count:              1973720
Reserved block count:     98686
Overhead clusters:        6362
Free blocks:              1967353
Free inodes:              99541
First block:              0
Block size:               4096
Fragment size:            4096
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         1632
Inode blocks per group:   102
Filesystem created:       Thu Apr  6 20:00:45 2023
Last mount time:          n/a
Last write time:          Thu Apr  6 20:01:49 2023
Mount count:              0
Maximum mount count:      -1
Last checked:             Thu Apr  6 20:00:45 2023
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     32
Desired extra isize:      32
Default directory hash:   half_md4
Directory Hash Seed:      61ff1bad-c6c8-409f-b334-f277fb29df54

答え1

この数字は無視されずに丸められます。 inodeのためのスペースがグループごとに割り当てられているようです。出力で以下を確認してください。

Inodes per group:         1632

99,000個のinodeをリクエストすると、1,632に分割できません。したがって、必要なinodeの数を確保するために、この数は1,632で割ることができる99,552に丸められています。

この制限は数量から何とか派生したようです。ブロックグループここで、各グループの inode 数は、すべてのブロックグループで同じです。私の考えでは、ブロックグループあたりのinodeの数は、要求されたinodeの数をブロックグループの数で割って整数に丸めることによって計算されます。バラよりOSDev WikiのExt2

ブロックグループとは何ですか?ブロックは inode とともに「ブロックグループ」にグループ化されます。これらは連続したグループに過ぎません。

彫刻。

各ブロックグループは、次の特別な目的のためにいくつかのブロックを予約します。

  • ...
  • このグループに属する索引ノード構造表
  • ..

関連情報