ext4
ext4 (fourth extended file system) はオープンソースのディスクファイルシステムで、extended filesystem シリーズの最新バージョンです。これは多くの Linux システムで主要なファイルシステムとして使用されていることから、Linux でサポートされている中でほぼ間違いなく最も安定し、かつ十分にテストされたファイルシステムとなっています。
ext4 は当初 ext3 のフォークとして作成され、パフォーマンスの改善と、ディスク上のフォーマットへのわずかな変更を伴うサイズ制限の撤廃という、新しい機能を取り入れました。ボリュームの上限は 1 EB に、ファイルサイズの上限は 16TB に拡大されました。古典的な ext2/3 ビットマップブロック割り当てに代わって、ext4 はエクステントを使用し、大きいファイルのパフォーマンスを向上させつつ断片化を抑制します。ext4 はより洗練されたブロック割り当てアルゴリズム (遅延割り当てとマルチブロック割り当て) も提供し、ファイルシステムドライバがディスク上のデータのレイアウトをより最適化できるようにしています。
インストール
カーネル
ext4 をサポートするには、以下のカーネルオプションを有効にしてください:
File systems --->
<*> The Extended 4 (ext4) filesystem
ext4 のオプション機能をサポートするには:
File systems --->
[*] Ext4 POSIX Access Control Lists
[*] Ext4 Security Labels
[ ] EXT4 debugging support
ext3
通常の ext4 システムでは、ext3 や ext2 のオプションを有功にする必要はありません。これらのオプションはもっぱら歴史的な理由のために残されているものです。
ext3 をサポートするには、以下のカーネルオプションを有効にしてください:
File systems --->
<*> Ext3 journalling file system support
ext3 のオプション機能をサポートするには:
File systems --->
[*] Default to 'data=ordered' in ext3
[*] Ext3 extended attributes
[*] Ext3 POSIX Access Control Lists
[*] Ext3 Security Labels
ext2
ext2 にはジャーナリングはありません。この機能のサポートは ext3 で追加されました。
ext2 をサポートするには、以下のカーネルオプションを有効にしてください:
File systems --->
<*> Second extended fs support
ext2 のオプション機能をサポートするには:
File systems --->
[*] Ext2 extended attributes
[*] Ext2 POSIX Access Control Lists
[*] Ext2 Security Labels
オリジナルの ext3 ファイルシステムのコードは Linux カーネルのバージョン 4.3 で削除され、代わって ext4 ファイルシステムのコードで ext2、ext3、ext4 ファイルシステムを扱えるようになりました。これにより、ファイルシステムが ext2 または ext3 としてマウントされた場合の互換性が維持されるとともに、 ext4 としてマウントされた場合にはアップグレードできるようになります。さらに、tune2fa を使って既存の ext2 や ext3 ファイルシステムに ext3 や ext4 特有の機能を追加することができますが、一定の制約は残ります。
オリジナルの ext2 ファイルシステムのコードは引き続き利用可能です。
ext2 と ext3 のファイルタイムスタンプはいずれも 2038 年問題の影響を受けますが、ext4 は 2016年の カーネル 4.3.6 と e2fsprogs 1.43 以降 2038 年問題の影響を受けません。
大容量ドライブのサポート
-*- Enable the block layer --->
[*] Support for large (2TB+) block devices and files
USE フラグ
USE flags for sys-fs/e2fsprogs Standard EXT2/EXT3/EXT4 filesystem utilities
+tools
|
Build extfs tools (mke2fs, e2fsck, tune2fs, etc.) |
archive
|
Add support for mke2fs to read a tarball as input. This allows not needing privileges. Needs app-arch/libarchive. |
cron
|
Install e2scrub_all cron script |
fuse
|
Build fuse2fs, a FUSE file system client for ext2/ext3/ext4 file systems |
nls
|
Add Native Language Support (using gettext - GNU locale utilities) |
static-libs
|
Build static versions of dynamic libraries as well |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
emerge
sys-fs/e2fsprogs パッケージは system セットに含まれているはずです。
root #
emerge --ask sys-fs/e2fsprogs
使い方
作成
mkfs.ext4 コマンドはフォーマットするよう指示されたパーティションの全ての内容を不可逆的に破壊します。正しいパーティションを選択しているか必ず確認してください!
ext4 ファイルシステムを /dev/sda1 パーティションに作成するには:
root #
mkfs.ext4 /dev/sda1
マウント
ファイルシステム を参照してください。
ユーティリティ
パッケージに含まれるユーティリティは以下から成ります:
ユーティリティ | 説明 | man ページ |
---|---|---|
badblocks | ブロックデバイスにストレステストを行うための小さなプログラム。 | Man page |
debugfs | ext2/ext3/ext4 ファイルシステムのデバッガー。 | Man page |
dumpe2fs | ext2/ext3/ext4 ファイルシステムの情報をダンプするためのツール。 | Man page |
e2fsck | ext2/ext3/ext4 ファイルシステムをチェックするためのツール。 | Man page |
e2image | ext2/ext3/ext4 ファイルシステムの重要なメタデータをファイルを保存するためのツール。 | Man page |
e2label | ext2/ext3/ext4 ファイルシステムのラベルを変更するためのツール(tune2fs へのシンボリックリンク)。 | |
e2undo | ext2/ext3/ext4 ファイルシステムの復元ログを再現するためのツール。 | Man page |
fsck.ext2 | ext2 ファイルシステムを明示的にチェックします(e2fsck へのシンボリックリンク)。 | |
fsck.ext3 | ext3 ファイルシステムを明示的にチェックします(e2fsck へのシンボリックリンク)。 | |
fsck.ext4 | ext4 ファイルシステムを明示的にチェックします(e2fsck へのシンボリックリンク)。 | |
fsck.ext4dev | ext4dev ファイルシステムを明示的にチェックします(e2fsck へのシンボリックリンク)。 | |
logsave | コマンドの出力をログファイルに保存するためのツール。 | Man page |
mke2fs | ext2/ext3/ext4 ファイルシステムを作成するための基本プログラム。作成コマンドはここへのシンボリックリンクです。 | Man page |
mkfs.ext2 | ext2 ファイルシステムを明示的に作成します(mke2fs へのシンボリックリンク)。 | |
mkfs.ext3 | ext3 ファイルシステムを明示的に作成します(mke2fs へのシンボリックリンク)。 | |
mkfs.ext4 | ext4 ファイルシステムを明示的に作成します(mke2fs へのシンボリックリンク)。 | |
mkfs.ext4dev | ext4dev ファイルシステムを明示的に作成します(mke2fs へのシンボリックリンク)。 | |
resize2fs | ext2/ext3/ext4 ファイルシステムのサイズを変更するツール。 | Man page |
tune2fs | ext2/ext3/ext4 ファイルシステムの調整可能なパラメーターを変更します。 | Man page |
ユーティリティ | 説明 | Man page |
---|---|---|
chattr | Linux ファイルシステムにおけるファイル属性を変更します。 | Man page |
lsattr | Linux ext2 におけるファイル属性の一覧を表示します。 | Man page |
ユーティリティ | 説明 | man page |
---|---|---|
e2freefrag | 空き領域の断片化情報を報告します。 | Man page |
e4defrag | ext4 ファイルシステム用のオンラインデフラグツール。 | Man page |
filefrag | ファイルの断片化を報告します。 | Man page |
mklost+found | Linux ext2 ファイルシステム に lost+found ディレクトリを作成します。 | Man page |
関連項目
- XFS — 高性能なジャーナリングファイルシステム
- Btrfs — 耐障害性、自己修復特性、管理のしやすさに焦点を当てつつ、先進的な機能を実装することも主眼としている、Linux 向けのコピーオンライト (CoW) ファイルシステムです。
- FAT — 当初は MS-DOS (および後の NT 以前の Microsoft Windows) で使用するために作られたファイルシステム。
外部資料
- https://ext4.wiki.kernel.org/ - The second, third, and fourth extended file system wiki
- https://bugzilla.kernel.org/show_bug.cgi?id=23732 - The final fix for the Year 2038 problem, only for ext4.