Categories: linux

Linuxのextファイルシステムを修復する「e2fsck」コマンドの使い方と注意点

Linuxでext系のファイルシステム(ext2/ext3/ext4)を使用していると、突然の電源断やシステムクラッシュ、またはハードウェア障害などによってファイルシステムにエラーが発生することがあります。
こうしたトラブルに対応するために活躍するのが、「e2fsck」コマンドです。
e2fsckはext系ファイルシステム専用のチェック・修復ツールで、ファイルシステムの整合性を保つために非常に重要な役割を果たします。
本記事ではe2fsckコマンドの基本的な使い方から、実行時の注意点、実践的な例まで詳しく解説します。Linux初心者から中級者まで、トラブル対応力を高めたい方はぜひ参考にしてください。


e2fsckとは?ファイルシステムの修復ツール

「e2fsck」とは、「ext2 file system check」の略称で、ext2、ext3、ext4ファイルシステムに対して一貫したチェックと修復を行うLinuxコマンドです。
これは「fsck(file system check)」コマンドの一部であり、fsckから間接的に呼び出されることもあります。

e2fsckは以下のようなチェックを行います:

  • ブロックグループの整合性
  • inodeの状態
  • ディレクトリ構造
  • フリーブロック・フリーinodeの整合性
  • ジャーナル(ext3/ext4)

ファイルシステムに不整合がある場合、自動的に修復が試みられるか、あるいは手動で修復するための確認を求められます。


使用前に注意!e2fsckの実行タイミング

e2fsckを実行する前には必ず対象パーティションをアンマウントしておく必要があります。
マウントされた状態でチェックを行うと、ファイルシステムにさらなる損傷を与える可能性があるためです。

また、ルートファイルシステムのようにアンマウントできない場合は、Live CD/USBからシステムを起動してe2fsckを実行することが推奨されます。


e2fsckの基本的な使い方

基本構文:

sudo e2fsck [オプション] デバイス名

例:

bashコピーする編集するsudo e2fsck /dev/sdb1

この例では、/dev/sdb1 に対してファイルシステムのチェックを実行します。
コマンド実行中にエラーが検出されると、その都度「修復しますか?」と聞かれます。


よく使うオプション解説

e2fsckではさまざまなオプションを指定できます。以下によく使われるものを紹介します。

オプション内容
-p または -a自動的にすべての問題を修復(無人実行に便利)
-f強制的にチェックを実行(通常はマウントカウントやタイムスタンプで判断)
-n何も変更せず、読み取り専用モードで実行(確認用)
-yすべての修復を自動で「はい」にする(リスクあり)

例:

bashコピーする編集するsudo e2fsck -p /dev/sdb1

これは無人で自動修復を実行する場合に便利です。


fsckとの関係と使い分け

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はジャーナリング機能が強化されており、通常のシャットダウンであればファイルシステムエラーが発生することはまれです。
それでも物理障害や強制終了が重なれば、破損の可能性はあります。

その場合も、e2fsckはext4に対応しており、ジャーナルをリプレイしながら修復処理を行います。
ただし、extentsや大容量ファイル、スナップショット等の機能を持つext4特有の状況では、注意して使用する必要があります。


実践!トラブル時のe2fsckの使い方

ケース1:ファイルシステムが読み取り専用になった場合

sudo umount /dev/sdb1
sudo e2fsck -f -y /dev/sdb1

読み取り専用エラーの原因がファイルシステムの不整合であれば、修復後に通常通りマウントできるようになります。

ケース2:ルートファイルシステムを修復したい場合

ルートファイルシステムをe2fsckでチェックする場合は、リカバリーモードまたはLiveメディアから起動して、以下のように実行します。

sudo e2fsck -f /dev/sda1

/dev/sda1 はルートパーティションに読み替えてください。Live環境での実行が基本です。


トラブル防止のためのベストプラクティス

  1. 定期的なバックアップを必ず実施する。
  2. UPS(無停電電源装置)を導入して、停電時のシャットダウンを制御する。
  3. 起動時に自動チェックがかかるよう、tune2fsで設定する。
  4. 不良セクタが頻発する場合はディスク自体の交換を検討する。

まとめ

e2fsckは、extファイルシステムの健全性を保つために欠かせないツールです。
使い方を誤るとデータ損失のリスクもあるため、必ずアンマウントしてから実行すること、バックアップを取っておくことが重要です。

Linux運用者にとってe2fsckの理解は、障害対応の基本スキルのひとつ。
もしもの時に慌てないよう、日頃から使い方を確認しておきましょう。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。