Linux / コマンド / fsck - ファイルシステムのエラー確認と復旧時の注意点

fsckは、ファイルシステムの整合性を検査し、必要に応じて修復する専用プログラムを呼び出します。対象の形式と使用状態を確認し、修復前にはマウントを解除してバックアップを用意します。マウント中のファイルシステムを修復すると、データを損傷するおそれがあります。

fsckは、fsck.ext4などの専用検査プログラムを選ぶフロントエンドです。オプションの意味や修復方法は形式ごとに確認します。XFSのfsck.xfsは、実際の検査を行わず成功を返すため、成功しただけで正常と判断しないでください。XFSには別のxfs_repairの手順があります。また、対象を省略したfsckは/etc/fstabの複数の対象を検査し得るため、調べるデバイスを明示してください。

基本的な文法

sudo fsck [オプション] [ファイルシステム]

インストールされている実装とオプションは、配布版によって異なる場合があります。man fsckで現在のシステムの説明を確認してください。

使用例

対象と形式の確認

チェックするパーティションとマウント状態をまず確認します。

lsblk -f

マウント状況の確認

対象が使用中であれば、まず停止・切断の計画を立てます。

findmnt /dev/sdb1

読み取り専用チェックの例

ext2・ext3・ext4と確認できた対象を、umountでマウント解除した後に検査する例です。e2fsprogsのe2fsckを使用し、/dev/sdb1を実際の対象パーティションに置き換えます。

sudo e2fsck -n /dev/sdb1

検査と自動復旧の違い

fsckはファイルシステムの種類に適した検査プログラムを呼び出します。まず実際のパーティションとファイルシステムの種類を確認し、検査対象をアンマウントした状態で実行するのが原則です。

lsblk -f
sudo fsck -n /dev/sdb1

このfsck -nの例もext系の未マウントの対象を想定しています。形式はblkidでファイルシステム形式を確認して照合します。-nは質問に「いいえ」と答えて変更しない指定ですが、専用プログラムの対応を確認してください。-Nが検査コマンドを表示するだけなのに対し、-nは検査を実際に行います。

検査結果にエラーが表示されたからといって、すぐに自動復旧オプションを適用しないでください。ディスクの状態とバックアップを確認し、ファイルシステムごとの復旧手順に従ってください。特にマウントされた書き込み可能ファイルシステムの復旧検査は、データ破損の危険があります。

fsckの終了コードは、0がエラーなし、1が修復済み、2が再起動の必要、4が未修復のエラー、8が操作上のエラーを表します。複数の条件が重なればビットを組み合わせた値になるため、単純に0以外を同じ失敗として処理しないでください。その他の値や専用検査プログラムの条件は説明書で確認し、修復した場合はマウント後の状態とアプリケーションの動作も確かめます。

主なオプションと形式

オプション・形式 説明
-t 形式 検査するファイルシステムの形式を指定します。
-A 設定ファイルに指定されたファイルシステムを検査します。範囲が広いです。
-N 実行するコマンドのみを表示し、検査は行いません。
-M マウントされたファイルシステムをスキップします。
-V 実行過程を詳細に表示します。

使用する際の注意点

実際に修復する前に、最近のバックアップと復旧手段を確認し、可能な限りマウント解除した状態で作業してください。fsck -y のような自動承認オプションは、損傷したファイルを予期とは異なる方法で修正する可能性があります。ルートファイルシステムは通常の実行状態で分離することは難しいため、リカバリモードやライブ環境が必要になる場合があります。SSD・RAID・LVM の階層も対象選択に影響します。

よくある質問

マウントされたファイルシステムに fsck を実行してもよいですか?

修正検査でアクセスすると危険です。一般的には対象ファイルシステムをマウント解除するか、復旧環境で検査し、フォーマット別の指針に従ってください。

公式ドキュメント

オプションの正確な動作と実装ごとの違いは、fsck 関連公式ドキュメントで確認できます。