ext2ファイルシステムで「セットごとのInodeブロック」を計算する方法は?

ext2ファイルシステムで「セットごとのInodeブロック」を計算する方法は?

学習用に100Mサイズを割り当て、ドライブをext2としてフォーマットしました。

これは次の出力ですdumpe2fs

[root@ ext2fs]# dumpe2fs /dev/sda2
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: /home
Filesystem UUID: dd4a8792-84b0-48a3-8356-682229114afd
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super
Filesystem flags: signed_directory_hash 
Default mount options: user_xattr acl
Filesystem state: not clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 25688
Block count: 102400
Reserved block count: 5120
Free blocks: 97577
Free inodes: 25662
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 1976
***Inode blocks per group: 247***
Filesystem created: Tue Dec 12 10:08:16 2017
Last mount time: Wed Dec 13 09:23:29 2017
Last write time: Wed Dec 13 09:23:29 2017
Mount count: 4
Maximum mount count: -1
Last checked: Tue Dec 12 10:08:16 2017
Check interval: 0 (<none>)
Lifetime writes: 58 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Default directory hash: half_md4
Directory Hash Seed: a24eb501-5513-40fe-afeb-04b93ae8d11f

「グループごとのInodeブロック」がどのように計算されるかを知りたいです。この場合は247です。

ベストアンサー1

inodeはブロック単位で梱包されており、サイズはすべて2の累乗であるため、完璧にフィットします。次の図で見ることができます。

Block size: 1024
Inodes per group: 1976
Inode size: 128

私達は得た

1024B/ブロック
--------------- = 8個のアノード/ブロック    
 128B/インデックスノード

1976 inode/グループ
------------------ = 247(インデックスノード)ブロック/グループ
   8個のアイノード/ブロック

これは予想される結果です。

私はinodeがすべてのチャンクグループに均等に分散していると思うので、比率の合計も(inodes/group) / (total inodes)同じでなければなりません(blocks/group) / (total blocks)(最後のチャンクグループがいっぱいではなく丸められるまで)。

おすすめ記事