Linuxでext系のファイルシステム(ext2/ext3/ext4)を使用していると、突然の電源断やシステムクラッシュ、またはハードウェア障害などによってファイルシステムにエラーが発生することがあります。
こうしたトラブルに対応するために活躍するのが、「e2fsck」コマンドです。
e2fsckはext系ファイルシステム専用のチェック・修復ツールで、ファイルシステムの整合性を保つために非常に重要な役割を果たします。
本記事ではe2fsckコマンドの基本的な使い方から、実行時の注意点、実践的な例まで詳しく解説します。Linux初心者から中級者まで、トラブル対応力を高めたい方はぜひ参考にしてください。
「e2fsck」とは、「ext2 file system check」の略称で、ext2、ext3、ext4ファイルシステムに対して一貫したチェックと修復を行うLinuxコマンドです。
これは「fsck(file system check)」コマンドの一部であり、fsckから間接的に呼び出されることもあります。
e2fsckは以下のようなチェックを行います:
ファイルシステムに不整合がある場合、自動的に修復が試みられるか、あるいは手動で修復するための確認を求められます。
e2fsckを実行する前には必ず対象パーティションをアンマウントしておく必要があります。
マウントされた状態でチェックを行うと、ファイルシステムにさらなる損傷を与える可能性があるためです。
また、ルートファイルシステムのようにアンマウントできない場合は、Live CD/USBからシステムを起動してe2fsckを実行することが推奨されます。
sudo e2fsck [オプション] デバイス名
例:
bashコピーする編集するsudo e2fsck /dev/sdb1
この例では、/dev/sdb1
に対してファイルシステムのチェックを実行します。
コマンド実行中にエラーが検出されると、その都度「修復しますか?」と聞かれます。
e2fsckではさまざまなオプションを指定できます。以下によく使われるものを紹介します。
オプション | 内容 |
---|---|
-p または -a | 自動的にすべての問題を修復(無人実行に便利) |
-f | 強制的にチェックを実行(通常はマウントカウントやタイムスタンプで判断) |
-n | 何も変更せず、読み取り専用モードで実行(確認用) |
-y | すべての修復を自動で「はい」にする(リスクあり) |
例:
bashコピーする編集するsudo e2fsck -p /dev/sdb1
これは無人で自動修復を実行する場合に便利です。
Linuxでは通常、fsckを通じてe2fsckが呼び出されます。
つまり、以下のコマンドは実質的に同じ結果になります:
sudo fsck /dev/sdb1
この場合、fsckはファイルシステムの種類を自動で検出し、適切なツール(ext系ならe2fsck)を使用します。
明示的にe2fsckを使いたい場合や、特定のバージョンで動作確認したい場合などには、e2fsckを直接実行する方がよいでしょう。
e2fsckを実行する前に、ファイルシステムの状態を確認するには以下のようなコマンドが使えます。
sudo dumpe2fs /dev/sdb1 | grep -i 'mount count\|last mount time'
このコマンドで「マウント回数」や「前回のマウント日時」を確認できます。これにより、fsckやe2fsckのトリガー条件を把握することが可能です。
また、tune2fs
コマンドで自動チェックの間隔やマウント回数を設定・確認できます。
ext4はジャーナリング機能が強化されており、通常のシャットダウンであればファイルシステムエラーが発生することはまれです。
それでも物理障害や強制終了が重なれば、破損の可能性はあります。
その場合も、e2fsckはext4に対応しており、ジャーナルをリプレイしながら修復処理を行います。
ただし、extentsや大容量ファイル、スナップショット等の機能を持つext4特有の状況では、注意して使用する必要があります。
sudo umount /dev/sdb1
sudo e2fsck -f -y /dev/sdb1
読み取り専用エラーの原因がファイルシステムの不整合であれば、修復後に通常通りマウントできるようになります。
ルートファイルシステムをe2fsckでチェックする場合は、リカバリーモードまたはLiveメディアから起動して、以下のように実行します。
sudo e2fsck -f /dev/sda1
/dev/sda1
はルートパーティションに読み替えてください。Live環境での実行が基本です。
tune2fs
で設定する。e2fsckは、extファイルシステムの健全性を保つために欠かせないツールです。
使い方を誤るとデータ損失のリスクもあるため、必ずアンマウントしてから実行すること、バックアップを取っておくことが重要です。
Linux運用者にとってe2fsckの理解は、障害対応の基本スキルのひとつ。
もしもの時に慌てないよう、日頃から使い方を確認しておきましょう。