e2fsckコマンドを徹底解説!Linuxのファイルシステム修復と保守の基本
生徒
「先生、Linuxを使っていたら急にファイルが読み込めなくなったり、OSが正常に終了しなかったりしたときはどうすればいいですか?」
先生
「それはファイルシステムに不整合(矛盾)が起きている可能性がありますね。そんなときはe2fsckというコマンドを使って、システムを修復できるんですよ。」
生徒
「ファイルシステム修復…なんだか難しそうですね。初心者が勝手に実行しても大丈夫なものなんですか?」
先生
「正しい手順を守れば大丈夫です。Windowsの『チェックディスク』のような役割だと考えれば分かりやすいですよ。まずは仕組みから順番に学んでいきましょう。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. e2fsckコマンドとは?
e2fsckは、読み方はe2fsck(イーツーエフエスクロック)または(イーツーエフエスシーケー)と呼びます。主にLinuxで採用されているext2、ext3、ext4といった「ext系」と呼ばれるファイルシステムの整合性をチェックし、不具合があれば修復するための専用ツールです。
ファイルシステム(読み方はファイルシステム)とは、データを保存するための「本棚の管理リスト」のようなものです。急な停電や強制終了、ハードウェアのトラブルなどでこのリストが乱れると、ファイルが壊れたり、最悪の場合はOSが起動しなくなったりします。e2fsckは、その乱れたリストをスキャンして、元の正しい状態に戻してくれる頼もしいお医者さんのような存在です。
基本的にはfsck(エフエスシーケー)というコマンドの拡張版であり、ext系(イーエックスティーケイ)ファイルシステムに対してより詳細な診断を行うことができます。Linuxサーバーや個人PCのメンテナンスにおいて、最も重要なコマンドの一つと言えるでしょう。
2. e2fsckを使用する際の注意点
このコマンドを扱う上で、初心者が絶対に覚えておくべきルールがあります。それは「マウントされている(使用中の)ファイルシステムに対しては実行しない」ということです。データが書き換えられている最中に修復を試みると、かえってデータを破壊してしまう恐れがあるからです。
そのため、e2fsckを実行するときは、対象のパーティションをアンマウント(切り離し)するか、レスキューモードやLive USBから起動して、システムが動いていない状態で操作するのが鉄則です。また、この操作はシステム全体に影響を及ぼすため、一般ユーザーではなく、管理者権限(読み方はカンリシャケンゲン)であるroot(ルート)ユーザーでの実行が必要となります。
3. ファイルシステムの状態を確認する基本操作
まずは、修復を行う前にファイルシステムの状態を確認してみましょう。一般ユーザーでも実行できる情報確認コマンドとしてdfやlsblkがありますが、e2fsckを実行する際は対象となるデバイス名(例:/dev/sdb1)を正確に把握する必要があります。
ここでは、特定の外部ストレージ(USBメモリなど)を想定した確認の例を見てみましょう。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
└─sda1 8:1 0 50G 0 part /
sdb 8:16 0 8G 0 disk
└─sdb1 8:17 0 8G 0 part /mnt/data
上記の例では、/dev/sdb1という場所を確認できました。修復前には、必ずumount(アンマウント)コマンドを使って、切り離し作業を行います。
umount /dev/sdb1
(出力なし。エラーが出なければ成功)
4. e2fsckの基本的な使い方と整合性チェック
準備ができたら、実際にe2fsckを使ってみましょう。もっともシンプルな使い方は、引数に対象のデバイスを指定することです。このとき、ファイルシステムに問題がなければ「clean」と表示されます。
e2fsck /dev/sdb1
e2fsck 1.46.5 (30-Dec-2021)
/dev/sdb1: clean, 11/524288 files, 45231/2097152 blocks
「clean」と出れば、そのファイルシステムは健全であることを意味します。もし問題が見つかった場合は、対話形式で「修復しますか?」と聞かれますが、初心者のうちはどれを修復すべきか判断が難しいかもしれません。その場合は、次のセクションで紹介する便利なオプションを使います。
5. 自動で修復する「-p」オプションと「-y」オプション
修復作業を効率化するために、e2fsckにはいくつかのオプションが用意されています。特によく使われるのが、安全な範囲で自動修復を行う「-p」オプションと、すべての質問に「Yes」と答える「-y」オプションです。
「-p」は読み方は(ピーオプション)と呼び、Preen(プリーン:整える)の略です。システムが安全だと判断できる軽微なエラーだけを自動で直してくれます。一方、「-y」は強制的にすべてのエラーを直そうと試みるため、重大な破損がある場合に最終手段として使われます。
e2fsck -p /dev/sdb1
/dev/sdb1: 11/524288 files (0.0% non-contiguous), 45231/2097152 blocks
このように実行することで、一つずつ確認メッセージに応答する手間が省けます。サーバーの起動時に自動でバックグラウンド実行されるチェック処理も、内部的にはこの「-p」に近い動きをしています。
6. 詳細な情報を表示する「-v」オプションと進捗確認
大規模なハードディスクや容量の大きいストレージをスキャンする場合、どれくらい時間がかかるか不安になることがあります。そんなときは「-v」(読み方はブイオプション:Verbose)や「-f」(エフオプション:Force)を組み合わせて使います。
「-f」は問題がないように見えるファイルシステムでも強制的に詳細チェックを行い、「-v」は実行中の詳細な統計情報を出力します。これによって、ファイルシステム内部のディレクトリ構造やビットマップと呼ばれる管理情報の状態が詳しく表示されます。
e2fsck -fv /dev/sdb1
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
11 inodes used (0.00%)
0 non-contiguous files (0.0%)
0 non-contiguous directories (0.0%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent tree nodes: 0/0
45231 blocks used (2.16%)
Pass 1からPass 5までの工程を経て、徹底的に検査されていることがわかります。特に大容量ストレージでは、これらのフェーズが完了するまでじっくり待つことが大切です。
7. 不良ブロックのチェックを行う「-c」オプション
ファイルシステムのデータ構造ではなく、ハードディスクなどの物理的な媒体そのものに傷(読み方はキズ)がついている場合があります。これを不良ブロック(読み方はフリョウブロック)と呼びます。e2fsckには、この不良ブロックを探し出し、今後使われないようにマークする機能もあります。
「-c」オプションを指定すると、内部でbadblocksというツールが動き出し、読み取りテストを行います。もし古いHDDなどを使っていて「カリカリ」と変な音がしたり、特定のデータの読み込みが極端に遅かったりする場合は、このオプションを試す価値があります。
e2fsck -c /dev/sdb1
Checking for bad blocks (read-only test): 0.00% done, 0:00 elapsed. (0/0/0 errors)
/dev/sdb1: clean, 11/524288 files, 45231/2097152 blocks
ただし、このテストは非常に時間がかかるため、時間がある時に実行するようにしましょう。最近のSSDでは物理的な摩耗の仕組みが異なるため、このオプションの効果はHDDほどではありませんが、チェック機能としては依然として有用です。
8. e2fsckが必要になる具体的なタイミング
最後に、どのような場面でこのコマンドを使うべきか整理しておきましょう。Linuxを使っていると、自分の意志とは関係なく「ファイルシステムを修復してください」という状況に直面することがあります。以下のようなケースが代表的です。
- OS起動時の自動チェック失敗: PCを起動した際、青い画面や黒い画面に「Give root password for maintenance」といったメッセージが出たとき。
- 強制終了後のトラブル: 作業中に電源が落ち、再起動した後に「ファイルが読み取り専用(Read-only)になっています」と警告が出たとき。
- ディスクの定期メンテナンス: 長期間運用しているサーバーなどで、システムの安定性を保つために定期的にチェックしたいとき。
- 外部メディアの不調: USBメモリや外付けHDDを抜くときに「取り出し」操作を忘れてしまい、次に繋いだときにエラーが出たとき。
これらのトラブルは、Linuxを使い続けていればいつか必ず遭遇します。そんなときに「e2fsckを知っている」というだけで、慌てずにデータの救出やシステムの復旧に取り組むことができるようになります。まずは壊れても良いUSBメモリなどで練習してみるのも、エンジニアとしてのスキルアップへの近道です。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
この記事では、Linuxのシステム管理において欠かせないファイルシステム修復ツールであるe2fsck(イーツーエフエスシーケー)について詳しく解説してきました。e2fsckは、主にLinuxで標準的に利用されるext2、ext3、ext4ファイルシステムの整合性を保つための非常に強力なコマンドです。ファイルシステムの破損は、突然の停電やハードウェアトラブル、不適切なシャットダウンなど、日常的な運用の中で避けては通れないリスクの一つです。そのような事態に直面した際、e2fsckの正しい使い方を知っているかどうかは、データの生存を左右する極めて重要な分かれ道となります。
e2fsckコマンドの重要ポイントの再確認
e2fsckを使用する上で最も重要なルールは、「対象のファイルシステムを必ずアンマウントしてから実行する」という点です。マウントされた状態で実行すると、書き込み中のデータと修復プロセスが競合し、ファイルシステムを完全に破壊してしまう恐れがあります。コマンドを実行する前には、必ずumountコマンドを使用して、デバイスが安全に切り離されていることを確認しましょう。また、この操作には管理者権限が必要となるため、sudoを利用するか、rootユーザーで作業を行う必要があります。
主要なオプションとコマンド例の活用
実務で頻繁に使用されるオプションをマスターすることで、効率的なシステム復旧が可能になります。例えば、軽微なエラーを自動で修復する-pオプションは、安全性が高く推奨される方法です。一方で、深刻な破損が疑われる場合には、すべての質問に対して自動的に「はい」と応答する-yオプションが強力な武器となります。また、物理的な損傷が疑われる場合には、-cオプションを使用して不良ブロック(バッドブロック)の検査を行うことも忘れてはなりません。
以下に、実戦で役立つe2fsckの実行パターンをまとめたサンプルプログラム(コマンド実行例)を示します。これらのコマンドを状況に応じて使い分けることが、Linuxエンジニアとしての第一歩です。
# 基本的なチェックのみ(修復は対話形式)
sudo e2fsck /dev/sdb1
# 自動的に安全な修復を行う(推奨)
sudo e2fsck -p /dev/sdb1
# 全てのエラーを強制的に自動修復する
sudo e2fsck -y /dev/sdb1
# 強制的に詳細なチェックを行い、結果を詳しく表示する
sudo e2fsck -fv /dev/sdb1
# 物理的な不良ブロック(読み取りテスト)を同時に実行する
sudo e2fsck -c /dev/sdb1
ファイルシステムのトラブルは、サーバー管理者にとって「いつか必ず起こるもの」です。この記事で学んだ知識をベースに、定期的なバックアップと併せてe2fsckによるメンテナンス手法を身につけておくことで、万が一の際にも冷静に対処できるようになります。Linuxの内部構造を理解し、大切なデータを守るためのスキルを磨き続けていきましょう。
生徒
「先生、e2fsckについて教えていただきありがとうございました!ファイルシステムのお医者さんという例えがすごく分かりやすかったです。でも、実際に使うときは少し緊張しそうです…。」
先生
「そうですね、システムに直接手を加えるコマンドですから緊張感を持つのは良いことです。一番大切なルールは何でしたか?」
生徒
「はい!『必ずアンマウント(umount)してから実行すること』です。マウントしたまま実行すると、データが壊れてしまう可能性があるからですよね。」
先生
「その通り!よく覚えていましたね。では、もし何百箇所もエラーが出て、一つずつ『y』を押すのが大変なときはどうすればいいでしょうか?」
生徒
「そのときは、すべての質問に自動でイエスと答えてくれる-yオプションを使えばいいんですよね。でも、まずは安全な-pオプションから試してみるのがプロのやり方かなと思いました。」
先生
「素晴らしい判断です。ちなみに、古いハードディスクなどで物理的な故障が疑われるときは、-cオプションで不良ブロックをチェックするのも効果的ですよ。最近のSSDではあまり使いませんが、知識として持っておくと役に立ちます。」
生徒
「物理的な傷までチェックできるなんて、e2fsckは本当に多機能なんですね。これで急にLinuxが起動しなくなって『メンテナンスモード』になっても、落ち着いて対応できそうな気がします!」
先生
「その意気です。困ったときは、まずはこの記事の基本操作を思い出してください。大切なデータを守るために、日頃からのバックアップも忘れずに行っていきましょうね。」