ext4

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Ext4 and the translation is 100% complete.
Resources

ext4 (fourth extended file system) はオープンソースのディスクファイルシステムで、extended filesystem シリーズの最新バージョンです。これは多くの Linux システムで主要なファイルシステムとして使用されていることから、Linux でサポートされている中でほぼ間違いなく最も安定し、かつ十分にテストされたファイルシステムとなっています。

ext4 は当初 ext3 のフォークとして作成され、パフォーマンスの改善と、ディスク上のフォーマットへのわずかな変更を伴うサイズ制限の撤廃という、新しい機能を取り入れました。ボリュームの上限は 1 EB に、ファイルサイズの上限は 16TB に拡大されました。古典的な ext2/3 ビットマップブロック割り当てに代わって、ext4 はエクステントを使用し、大きいファイルのパフォーマンスを向上させつつ断片化を抑制します。ext4 はより洗練されたブロック割り当てアルゴリズム (遅延割り当てとマルチブロック割り当て) も提供し、ファイルシステムドライバがディスク上のデータのレイアウトをより最適化できるようにしています。

インストール

カーネル

ext4 ファイルシステムのコードを利用するには、以下のカーネルオプションを有効にしてください:

カーネル ext4 サポートを有効にする
File systems  --->
  <*> The Extended 4 (ext4) filesystem Search for <code>CONFIG_CONFIG_EXT4_FS</code> to find this item.

ext4 のオプション機能をサポートするには:

カーネル ext4 のオプション機能を有効にする
File systems  --->
  [*]   Ext4 POSIX Access Control Lists Search for <code>CONFIG_CONFIG_EXT4_FS_POSIX_ACL</code> to find this item.
  [*]   Ext4 Security Labels Search for <code>CONFIG_CONFIG_EXT4_FS_SECURITY</code> to find this item.
  [ ]   EXT4 debugging support
メモ
ext4 ファイルシステムのコードは ext2、ext3、ext4 ファイルシステムを扱うことができます。これにより、ファイルシステムが ext2 または ext3 としてマウントされた場合の互換性が維持されるとともに、ext4 としてマウントされた場合にはアップグレードできるようになります。さらに、tune2fs を使って既存の ext2 や ext3 ファイルシステムに ext3 や ext4 特有の機能を追加することができますが、一定の制約は残ります。
警告
ext2 と ext3 のファイルタイムスタンプはいずれも 2038 年問題の影響を受けますが、ext4 は 2016 年の Linuxカーネル 4.3.6 と e2fsprogs 1.43 以降 2038 年問題の影響を受けません。ジャーナルを持たない Extended ファイルシステムというものを特異的に求めている場合は、ext2 ではなくジャーナルを持たない ext4 ファイルシステムを使用するべきです; ジャーナルを持たない ext4 を参照してください。
重要
通常の ext4 システムでは、ext3 や ext2 のオプションを有効にする必要はありません。以降のファイルシステムオプションは、もっぱら歴史的な理由 (ext3) と、非常に特殊なユースケース (ext2) のために残されているものです。

ext3

オリジナルの ext3 ドライバは Linux カーネルのバージョン 4.3 で削除されました。ext3 ファイルシステムを使用する必要があるようなケースはごく稀なものしか残っていないはずですが、その場合は ext4 ドライバを使用することができます。

メモ
ext3 ファイルシステムをマウントするためには ext4 ドライバを使用することを推奨します。古い ext3 ドライバは有効化するべきではありません

ext3 ドライバーを利用するには、以下のカーネルオプションを有効にしてください:

カーネル ext3 サポートを有功にする
File systems  --->
   <*> Ext3 journalling file system support

ext3 のオプション機能をサポートするには:

カーネル ext3 のオプション機能を有効化する
File systems  --->
   [*]   Default to 'data=ordered' in ext3 
   [*]   Ext3 extended attributes
   [*]     Ext3 POSIX Access Control Lists
   [*]     Ext3 Security Labels

ext2

メモ
ext2 ファイルシステムはジャーナリングサポートを備えていません。
警告
オリジナルの ext2 ファイルシステムドライバが有効化されていれば、ext2 ファイルシステムをマウントするためにはそれが使用されます。通常の環境では ext4 ドライバを使用することが強く推奨されるため、従来の ext2 ドライバは有効化されるべきではありません: ext2 ファイルシステムをマウントするために ext4 ドライバがすでに利用可能であれば、それとは別にドライバが必要になることはまったくありません。
メモ
オリジナルの ext2 ファイルシステムのコードは、特殊な場合のために利用可能なまま残されています。例えば: ext4 ファイルシステムのコードと比較して、オリジナルの ext2 コードは少ないメモリ消費で済みます。(そのような場合、ext4 ドライバは完全に省略されるでしょうから、ext3 および ext4 ファイルシステムはできないでしょう。)

オリジナルの ext2 ファイルシステムのコードを使用したサポートを利用するには、以下のカーネルオプションを有効にしてください:

カーネル ext2 サポートを有功にする
File systems  --->
   <*> Second extended fs support

ext2 のオプション機能をサポートするには:

カーネル ext2 のオプション機能を有効化する
File systems  --->
   [*]   Ext2 extended attributes
   [*]     Ext2 POSIX Access Control Lists
   [*]     Ext2 Security Labels

大容量ドライブのサポート

カーネル 大容量ドライブを x86 カーネルで有効化する
-*- 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.* および mke2fs コマンドはフォーマットするよう指示されたデバイス (つまりパーティション、ボリューム、ディスクドライブ) またはファイルの全ての内容を不可逆的に破壊します。正しいデバイスとパーティションを選択しているか必ず確認してください! (以降の例では /dev/sdx5 を使用しています。)

ext4 ファイルシステムを /dev/sdx5 パーティションに作成するには:

root #mkfs.ext4 /dev/sdx5

マウント

ファイルシステム を参照してください。

ジャーナルを持たない ext4

ユースケースによっては、ジャーナルを持たないファイルシステムを作成するのが望ましいことがあります。ext2 はまさしくそれを提供していますが、ファイルタイムスタンプに関して 2038 年問題による影響を受けます。ext4 ファイルシステムだけが Y2K38 安全になっています。

ジャーナルを持たない、現行バージョンの ext ファイルシステムを得るには、ext4 ファイルシステムを has_journal 機能を持たないように作成するか、同様に修正することで得られます。(ext3 ファイルシステムではこれは可能ではないことに注意してください。)

既存の ext4 ボリュームからジャーナルを削除する

指定された ext2/3/4 ボリューム上で現在有効化されているファイルシステムの機能を表示するには:

root #dumpe2fs -h /dev/sdx5 | grep "^Filesystem features:"

ジャーナルを無効化するには、先にファイルシステムをアンマウントする必要があります:

root #umount /dev/sdx5
root #tune2fs -O ^has_journal /dev/sdx5

先頭の ^ は指定された機能を無効化します。そうしないと、機能は有効化されるでしょう; つまり、既存の ext2 またはジャーナルを持たない ext4 ファイルシステムでジャーナルを有効化するには:

root #tune2fs -O has_journal /dev/sdx5

dumpe2fs を再実行すると、has_journal 機能が表示されなくなっているはずです。これでファイルシステムを再マウントすればよいでしょう:

root #mount /dev/sdx5
EXT4-fs (/dev/sdx5): mounted filesystem abcdef01-2345-6789-9876-543210fedcba r/w without journal. Quota mode: disabled.

ジャーナルを持たない ext4 ボリュームを新しく作成する

ジャーナルを持たない ext4 ボリュームを新しく作成する (フォーマットする) には、ext4 ファイルシステムタイプのデフォルトオプションをオーバーライドする必要があります:

root #mke2fs -t ext4 -O ^has_journal /dev/sdx5

ユーティリティ

パッケージに含まれるユーティリティは以下から成ります:

ユーティリティ 説明 Man ページ
badblocks ブロックデバイスにストレステストを行うための小さなプログラム。 badblocks(8)
debugfs ext2/ext3/ext4 ファイルシステムのデバッガー。 debugfs(8)
dumpe2fs ext2/ext3/ext4 ファイルシステムの情報をダンプするためのツール。 dumpe2fs(8)
e2fsck ext2/ext3/ext4 ファイルシステムをチェックするためのツール。 e2fsck(8)
e2image ext2/ext3/ext4 ファイルシステムの重要なメタデータをファイルに保存するためのツール。 e2image(8)
e2label ext2/ext3/ext4 ファイルシステムのラベルを変更するためのツール(tune2fs へのシンボリックリンク)。
e2undo ext2/ext3/ext4 ファイルシステムの復元ログを再現するためのツール。 e2undo(8)
fsck.ext2 ext2 ファイルシステムを明示的にチェックします(e2fsck へのシンボリックリンク)。
fsck.ext3 ext3 ファイルシステムを明示的にチェックします(e2fsck へのシンボリックリンク)。
fsck.ext4 ext4 ファイルシステムを明示的にチェックします(e2fsck へのシンボリックリンク)。
fsck.ext4dev ext4dev ファイルシステムを明示的にチェックします(e2fsck へのシンボリックリンク)。
logsave コマンドの出力をログファイルに保存するためのツール。 logsave(8)
mke2fs ext2/ext3/ext4 ファイルシステムを作成するための基本プログラム。作成コマンドはここへのシンボリックリンクです。 mke2fs(8)
mkfs.ext2 ext2 ファイルシステムを明示的に作成します(mke2fs へのシンボリックリンク)。
mkfs.ext3 ext3 ファイルシステムを明示的に作成します(mke2fs へのシンボリックリンク)。
mkfs.ext4 ext4 ファイルシステムを明示的に作成します(mke2fs へのシンボリックリンク)。
mkfs.ext4dev ext4dev ファイルシステムを明示的に作成します(mke2fs へのシンボリックリンク)。
resize2fs ext2/ext3/ext4 ファイルシステムのサイズを変更するツール。 resize2fs(8)
tune2fs ext2/ext3/ext4 ファイルシステムの調整可能なパラメーターを変更します。 tune2fs(8)
chattr Linux ファイルシステムにおけるファイル属性を変更します。 chattr(1)
lsattr ext2/ext3/ext4 ファイル属性の一覧を表示します。 lsattr(1)
e2freefrag 空き領域の断片化情報を報告します。 e2freefrag(8)
e4defrag ext4 ファイルシステム用のオンラインデフラグツール。 e4defrag(8)
filefrag ファイルの断片化を報告します。 filefrag(8)
mklost+found マウントされている ext2/ext3/ext4 ファイルシステムに lost+found ディレクトリを作成します。 mklost+found(8)

関連項目

  • XFS — 高性能なジャーナリングファイルシステム
  • Btrfs — 耐障害性、自己修復特性、管理のしやすさに焦点を当てつつ、先進的な機能を実装することも主眼としている、Linux 向けのコピーオンライト (CoW) ファイルシステムです。
  • FAT — 当初は MS-DOS (および後の NT 以前の Microsoft Windows) で使用するために作られたファイルシステム

外部資料

参照