Linuxのext4ファイルシステム構成の確認
最終更新日:2020/11/19 | 公開日:2014/08/03
目次
概要
Red Hat Enterprise LinuxやCentOSの事実上の標準ファイルシステムである ext4 の構成について調べたので備忘録としてまとめます。 ext4 は ext2 や ext3 の後継ファイルシステムで、様々な改良が加えられています。 詳細は割愛しますので、必要な方はRed Hatの公式サイトでご確認ください。
■関連サイト
Ext4 ファイルシステム
ext4 のファイルシステム構成は大まかに下図のような構成になっています。 各領域のブロック数は設定により変わる可能性がありますが、 初期状態ではだいたいこのような構成になっていると思います。
ではext4の構成について実機を使って構成を確認してみます。
構成
サーバ構成
OSバージョン
CentOS 6.5 x86_64
手順
ext4 ファイルシステムの情報は dumpe2fs コマンドで確認することができます。 確認に使用したサーバでは /dev/sda1 パーティションを 300MB で作成し、 /boot ディレクトリにマウントして利用しています。 LVMは構成していません。 コマンドを実行した結果は以下の通りとなります。
# dumpe2fs /dev/sda1 dumpe2fs 1.41.12 (17-May-2010) Filesystem volume name:Last mounted on: /boot ←/bootにマウントされている Filesystem UUID: ae85d133-a8f8-4382-a0b5-b3f90866e405 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 76912 Block count: 307200 ←総ブロック数(307200/1024=300MB) Reserved block count: 15360 ←総ブロック数のうち5%(rootユーザだけが書けるブロック数) Free blocks: 257788 ←総ブロック数のうち空きブロック数 Free inodes: 76873 First block: 1 Block size: 1024 ←1ブロックサイズは1024バイト(2セクタ) Fragment size: 1024 Reserved GDT blocks: 256 ←グループディスクリプタテーブルの予約サイズ Blocks per group: 8192 ←1ブロックグループ当たり8192ブロック(8MB) Fragments per group: 8192 Inodes per group: 2024 Inode blocks per group: 253 Flex block group size: 16 Filesystem created: Sun Jul 20 15:45:25 2014 ←ファイルシステム作成日時 Last mount time: Tue Jul 22 06:50:30 2014 Last write time: Tue Jul 22 06:50:30 2014 Mount count: 4 Maximum mount count: -1 Last checked: Sun Jul 20 15:45:25 2014 Check interval: 0 ( ) Lifetime writes: 47 MB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: f307634d-9237-4bd8-bb47-745014832847 Journal backup: inode blocks Journal features: (none) Journal size: 8M Journal length: 8192 Journal sequence: 0x00000023 Journal start: 1 Group 0: (Blocks 1-8192) [ITABLE_ZEROED] ←ブロックグループ0の情報 Checksum 0xa6f4, unused inodes 2006 Primary superblock at 1, Group descriptors at 2-3 Reserved GDT blocks at 4-259 Block bitmap at 260 (+259), Inode bitmap at 276 (+275) Inode table at 292-544 (+291) 3836 free blocks, 2006 free inodes, 2 directories, 2006 unused inodes Free blocks: 4357-8192 Free inodes: 19-2024 Group 1: (Blocks 8193-16384) [INODE_UNINIT, ITABLE_ZEROED] ←ブロックグループ1の情報 Checksum 0xc66a, unused inodes 2024 Backup superblock at 8193, Group descriptors at 8194-8195 Reserved GDT blocks at 8196-8451 Block bitmap at 261 (+4294959364), Inode bitmap at 277 (+4294959380) Inode table at 545-797 (+4294959648) 1147 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 15238-16384 Free inodes: 2025-4048 Group 2: (Blocks 16385-24576) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0xbbd4, unused inodes 2024 Block bitmap at 262 (+4294951173), Inode bitmap at 278 (+4294951189) Inode table at 798-1050 (+4294951709) 0 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: Free inodes: 4049-6072 Group 3: (Blocks 24577-32768) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0x4c8d, unused inodes 2024 Backup superblock at 24577, Group descriptors at 24578-24579 Reserved GDT blocks at 24580-24835 Block bitmap at 263 (+4294942982), Inode bitmap at 279 (+4294942998) Inode table at 1051-1303 (+4294943770) 1789 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 24836-26624 Free inodes: 6073-8096 Group 4: (Blocks 32769-40960) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0x3efb, unused inodes 2024 Block bitmap at 264 (+4294934791), Inode bitmap at 280 (+4294934807) Inode table at 1304-1556 (+4294935831) 384 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 40577-40960 Free inodes: 8097-10120 Group 5: (Blocks 40961-49152) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0x949c, unused inodes 2024 Backup superblock at 40961, Group descriptors at 40962-40963 Reserved GDT blocks at 40964-41219 Block bitmap at 265 (+4294926600), Inode bitmap at 281 (+4294926616) Inode table at 1557-1809 (+4294927892) 7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 41220-49152 Free inodes: 10121-12144 Group 6: (Blocks 49153-57344) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x539a, unused inodes 2024 Block bitmap at 266 (+4294918409), Inode bitmap at 282 (+4294918425) Inode table at 1810-2062 (+4294919953) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 49153-57344 Free inodes: 12145-14168 Group 7: (Blocks 57345-65536) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0x4db8, unused inodes 2024 Backup superblock at 57345, Group descriptors at 57346-57347 Reserved GDT blocks at 57348-57603 Block bitmap at 267 (+4294910218), Inode bitmap at 283 (+4294910234) Inode table at 2063-2315 (+4294912014) 7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 57604-65536 Free inodes: 14169-16192 Group 8: (Blocks 65537-73728) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xda1a, unused inodes 2024 Block bitmap at 268 (+4294902027), Inode bitmap at 284 (+4294902043) Inode table at 2316-2568 (+4294904075) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 65537-73728 Free inodes: 16193-18216 Group 9: (Blocks 73729-81920) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0xa36c, unused inodes 2024 Backup superblock at 73729, Group descriptors at 73730-73731 Reserved GDT blocks at 73732-73987 Block bitmap at 269 (+4294893836), Inode bitmap at 285 (+4294893852) Inode table at 2569-2821 (+4294896136) 7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 73988-81920 Free inodes: 18217-20240 Group 10: (Blocks 81921-90112) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xc2e3, unused inodes 2024 Block bitmap at 270 (+4294885645), Inode bitmap at 286 (+4294885661) Inode table at 2822-3074 (+4294888197) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 81921-90112 Free inodes: 20241-22264 Group 11: (Blocks 90113-98304) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x08f8, unused inodes 2024 Block bitmap at 271 (+4294877454), Inode bitmap at 287 (+4294877470) Inode table at 3075-3327 (+4294880258) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 90113-98304 Free inodes: 22265-24288 Group 12: (Blocks 98305-106496) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x7f17, unused inodes 2024 Block bitmap at 272 (+4294869263), Inode bitmap at 288 (+4294869279) Inode table at 3328-3580 (+4294872319) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 98305-106496 Free inodes: 24289-26312 Group 13: (Blocks 106497-114688) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xef0c, unused inodes 2024 Block bitmap at 273 (+4294861072), Inode bitmap at 289 (+4294861088) Inode table at 3581-3833 (+4294864380) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 106497-114688 Free inodes: 26313-28336 Group 14: (Blocks 114689-122880) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xfd01, unused inodes 2024 Block bitmap at 274 (+4294852881), Inode bitmap at 290 (+4294852897) Inode table at 3834-4086 (+4294856441) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 114689-122880 Free inodes: 28337-30360 Group 15: (Blocks 122881-131072) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xf7f5, unused inodes 2024 Block bitmap at 275 (+4294844690), Inode bitmap at 291 (+4294844706) Inode table at 4087-4339 (+4294848502) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 122881-131072 Free inodes: 30361-32384 Group 16: (Blocks 131073-139264) [ITABLE_ZEROED] Checksum 0xe8a0, unused inodes 2003 Block bitmap at 131073 (+0), Inode bitmap at 131089 (+16) Inode table at 131105-131357 (+32) 4108 free blocks, 2003 free inodes, 4 directories, 2003 unused inodes Free blocks: 135157-139264 Free inodes: 32406-34408 Group 17: (Blocks 139265-147456) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0xb143, unused inodes 2024 Block bitmap at 131074 (+4294959105), Inode bitmap at 131090 (+4294959121) Inode table at 131358-131610 (+4294959389) 0 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: Free inodes: 34409-36432 Group 18: (Blocks 147457-155648) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0x4a95, unused inodes 2024 Block bitmap at 131075 (+4294950914), Inode bitmap at 131091 (+4294950930) Inode table at 131611-131863 (+4294951450) 7686 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 147963-155648 Free inodes: 36433-38456 Group 19: (Blocks 155649-163840) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xce74, unused inodes 2024 Block bitmap at 131076 (+4294942723), Inode bitmap at 131092 (+4294942739) Inode table at 131864-132116 (+4294943511) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 155649-163840 Free inodes: 38457-40480 Group 20: (Blocks 163841-172032) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x4ce6, unused inodes 2024 Block bitmap at 131077 (+4294934532), Inode bitmap at 131093 (+4294934548) Inode table at 132117-132369 (+4294935572) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 163841-172032 Free inodes: 40481-42504 Group 21: (Blocks 172033-180224) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x26c9, unused inodes 2024 Block bitmap at 131078 (+4294926341), Inode bitmap at 131094 (+4294926357) Inode table at 132370-132622 (+4294927633) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 172033-180224 Free inodes: 42505-44528 Group 22: (Blocks 180225-188416) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x590e, unused inodes 2024 Block bitmap at 131079 (+4294918150), Inode bitmap at 131095 (+4294918166) Inode table at 132623-132875 (+4294919694) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 180225-188416 Free inodes: 44529-46552 Group 23: (Blocks 188417-196608) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x8042, unused inodes 2024 Block bitmap at 131080 (+4294909959), Inode bitmap at 131096 (+4294909975) Inode table at 132876-133128 (+4294911755) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 188417-196608 Free inodes: 46553-48576 Group 24: (Blocks 196609-204800) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x04d2, unused inodes 2024 Block bitmap at 131081 (+4294901768), Inode bitmap at 131097 (+4294901784) Inode table at 133129-133381 (+4294903816) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 196609-204800 Free inodes: 48577-50600 Group 25: (Blocks 204801-212992) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0xff5c, unused inodes 2024 Backup superblock at 204801, Group descriptors at 204802-204803 Reserved GDT blocks at 204804-205059 Block bitmap at 131082 (+4294893577), Inode bitmap at 131098 (+4294893593) Inode table at 133382-133634 (+4294895877) 7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 205060-212992 Free inodes: 50601-52624 Group 26: (Blocks 212993-221184) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x1c2b, unused inodes 2024 Block bitmap at 131083 (+4294885386), Inode bitmap at 131099 (+4294885402) Inode table at 133635-133887 (+4294887938) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 212993-221184 Free inodes: 52625-54648 Group 27: (Blocks 221185-229376) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0x8d8b, unused inodes 2024 Backup superblock at 221185, Group descriptors at 221186-221187 Reserved GDT blocks at 221188-221443 Block bitmap at 131084 (+4294877195), Inode bitmap at 131100 (+4294877211) Inode table at 133888-134140 (+4294879999) 7933 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 221444-229376 Free inodes: 54649-56672 Group 28: (Blocks 229377-237568) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xc4b8, unused inodes 2024 Block bitmap at 131085 (+4294869004), Inode bitmap at 131101 (+4294869020) Inode table at 134141-134393 (+4294872060) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 229377-237568 Free inodes: 56673-58696 Group 29: (Blocks 237569-245760) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xc8f1, unused inodes 2024 Block bitmap at 131086 (+4294860813), Inode bitmap at 131102 (+4294860829) Inode table at 134394-134646 (+4294864121) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 237569-245760 Free inodes: 58697-60720 Group 30: (Blocks 245761-253952) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x5804, unused inodes 2024 Block bitmap at 131087 (+4294852622), Inode bitmap at 131103 (+4294852638) Inode table at 134647-134899 (+4294856182) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 245761-253952 Free inodes: 60721-62744 Group 31: (Blocks 253953-262144) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x23c8, unused inodes 2024 Block bitmap at 131088 (+4294844431), Inode bitmap at 131104 (+4294844447) Inode table at 134900-135152 (+4294848243) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 253953-262144 Free inodes: 62745-64768 Group 32: (Blocks 262145-270336) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0x6d5b, unused inodes 2024 Block bitmap at 262145 (+0), Inode bitmap at 262161 (+16) Inode table at 262177-262429 (+32) 6662 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 262151-262160, 262167-262176, 263695-270336 Free inodes: 64769-66792 Group 33: (Blocks 270337-278528) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x55e5, unused inodes 2024 Block bitmap at 262146 (+4294959105), Inode bitmap at 262162 (+4294959121) Inode table at 262430-262682 (+4294959389) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 270337-278528 Free inodes: 66793-68816 Group 34: (Blocks 278529-286720) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x81ba, unused inodes 2024 Block bitmap at 262147 (+4294950914), Inode bitmap at 262163 (+4294950930) Inode table at 262683-262935 (+4294951450) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 278529-286720 Free inodes: 68817-70840 Group 35: (Blocks 286721-294912) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0x2732, unused inodes 2024 Block bitmap at 262148 (+4294942723), Inode bitmap at 262164 (+4294942739) Inode table at 262936-263188 (+4294943511) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 286721-294912 Free inodes: 70841-72864 Group 36: (Blocks 294913-303104) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED] Checksum 0xa5a0, unused inodes 2024 Block bitmap at 262149 (+4294934532), Inode bitmap at 262165 (+4294934548) Inode table at 263189-263441 (+4294935572) 8192 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 294913-303104 Free inodes: 72865-74888 Group 37: (Blocks 303105-307199) [INODE_UNINIT, ITABLE_ZEROED] Checksum 0x155a, unused inodes 2024 Block bitmap at 262150 (+4294926341), Inode bitmap at 262166 (+4294926357) Inode table at 263442-263694 (+4294927633) 4095 free blocks, 2024 free inodes, 0 directories, 2024 unused inodes Free blocks: 303105-307199 Free inodes: 74889-76912
ちょっと分かりづらいので、表にしてみました。
各ブロック種別の意味は以下の通りです。
ブートブロック | OSの起動に必要なブートローダなどが格納されます。 |
---|---|
スーパーブロック | i-nodeの総数やブロックサイズ、空きブロック数などファイルシステムに関する情報が記録されます。通常はブロックグループ0のもののみ使用され、その他のブロックグループのものはコピーです。 |
グループディスクリプタ | データブロックビットマップ、i-nodeビットマップ、i-nodeテーブルのアドレスを管理します。通常はブロックグループ0のもののみ使用され、その他のブロックグループのものはバックアップとして利用されます。 |
予約済みGDTブロック | GDTはグループディスクリプタテーブルです。グループディスクリプタ1ブロックで管理できるファイルシステムのサイズに限りがありますので、ファイルシステムを拡張すると追加でグループディスクリプタが必要となります。そのための予約ブロックです。 |
ブロックビットマップ | データブロックの使用状況が記録されます。 |
i-nodeビットマップ | i-nodeの使用状況が記録されます。 |
i-nodeテーブル | ファイルやディレクトリなどのi-nodeを格納します。 |
データブロック | 実データを格納します。 |
dfで確認すると、/boot の使用済みブロック数は 39,697 ブロック、実際にデータが 入っているブロックが 37,649 ブロック。差分の 2,048 ブロックはどこまで含まれるのだろう?(調査中)
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 10321208 2775100 7021820 29% / tmpfs 1898016 0 1898016 0% /dev/shm /dev/sda1 297485 39697 242428 15% /boot /dev/mapper/VolGroup00-LogVol02 10321208 246672 9550248 3% /var