Linuxでの「Input/output error」修復:ステップバイステップの復旧ガイド

中級🐧 Linux2026-07-27| ext4、xfs、またはbtrfsファイルシステムを使用しているLinux (Ubuntu, Debian, CentOS, RHEL)。

Error Message

ls: cannot access '/data': Input/output error
#linux#ストレージ#トラブルシューティング#fsck#システム管理

I/Oエラーの解読

Input/output error(しばしばI/Oエラーと略されます)が表示されるのは、通常、非常にショッキングな瞬間です。これはLinuxカーネルからの低レベルな信号で、ディスクへのデータの読み書きを試みたものの、完全に失敗したことを示しています。パーミッションエラーはファイルを見る権限がないことを意味しますが、I/Oエラーはシステムが物理的にファイルを見つけられないことを意味します。これは通常、ファイルシステムのロジックの混乱、またはハードドライブの物理的な故障のいずれかが原因です。

通常、ファイルのリスト表示やデータの移動を試みた際にこのエラーに遭遇します:

ls: cannot access '/mnt/storage': Input/output error

ステップ1:カーネルログを調査する

最初のステップは、カーネルリングバッファを確認することです。このログはブラックボックス記録のように機能し、どのデバイスが問題を抱えているかを正確に示します。以下のコマンドを実行して、システムアクティビティの最新50行を表示します:

sudo dmesg | tail -n 50

critical medium errorBuffer I/O error、または sd 2:0:0:0: [sdb] Unaligned I/O といった警告フレーズを探してください。もし error, dev sdb, sector 15728640 のように特定のセクタ番号が表示されている場合、物理ディスクにハードウェア的な不良箇所が発生している可能性が高いです。

ステップ2:SMARTでハードウェアの状態を確認する

ハードウェアが物理的に壊れかけている場合、ソフトウェアで解決しようとしてはいけません。smartctl を使用して、ドライブの健康状態を直接確認します。ツールキットをまだインストールしていない場合は、先にインストールしてください:

# Debian/Ubuntuの場合
sudo apt install smartmontools -y 

# CentOS/RHELの場合
sudo yum install smartmontools -y

次に、ドライブの健康診断を実行します(/dev/sdX は実際のデバイスIDに置き換えてください):

sudo smartctl -H /dev/sdX

PASSED という結果は良い兆候ですが、保証ではありません。「Reallocated_Sector_Count」に細心の注意を払ってください。もしその数値が0より大きく、かつ増加している場合、ドライブの寿命が近づいています。直ちにデータをバックアップし、ファイルの安全が確保されるまでこのガイドの続きを読まないでください。

ステップ3:ドライブを安全にアンマウントする

マウントされたファイルシステムを修復しようとするのは、高速道路を走行中に車のエンジンを修理しようとするようなもので、悲惨な結果を招きます。修復ツールを実行する前に、必ずパーティションをアンマウントする必要があります。

sudo umount /data

もしターミナルが「target is busy(ターゲットがビジーです)」と警告する場合、何らかのプロセスがファイルを開いたままにしている可能性があります。fuser を使って原因となっているプロセスを特定し、終了させることができます:

sudo fuser -mv /data
# 特定できたら、プロセスのPIDを終了させます
sudo kill -9 <PID>

ステップ4:ファイルシステムの修復

ハードウェアに問題がなさそうな場合、メタデータが混乱しているだけかもしれません。ここでは fsck (File System Consistency Check) ツールが役立ちます。標準的な ext4 パーティションの場合は、以下を使用します:

sudo fsck -y /dev/sdX1

-y フラグは大幅な時間の節約になります。破損したドライブに数百の孤立したノードがある場合などに便利で、すべての修復プロンプトに自動的に「yes」と答えます。注意:XFS を使用している場合は、fsck は XFS の構造を適切に処理できないため、代わりに xfs_repair /dev/sdX1 を使用してください。

ステップ5:読み取り専用(Read-Only)ロックへの対処

Linuxがハードウェアのトラブルを検出すると、データのさらなる破損を防ぐためにドライブを「読み取り専用」として再マウントすることがよくあります。修復が完了したら、強制的に書き込み可能な状態に戻すことができます:

sudo mount -o remount,rw /data

ステップ6:復旧の確認

ドライブを再マウントし、エラーが解消されたか確認します。パーティションのルートにある lost+found フォルダを確認してください。fsck が切断されたファイルの断片を見つけた場合、そこに格納されています。

sudo mount /dev/sdX1 /data
ls -la /data/lost+found

予防のヒント

  • ケーブルを確認する: ケースの約15%において、I/Oエラーは単なるSATAケーブルの緩みやバックプレーンの埃が原因です。まず接続をやり直してみてください。
  • 監視を自動化する: smartd を有効にして、ドライブが不良セクタを報告し始めた瞬間にメールが届くようにします。
  • 電源は重要: 突然の停電はファイルシステム破損の主な原因です。サーバーには必ず UPS(無停電電源装置)を使用してください。
  • 3-2-1ルール: I/Oエラーは警告です。3つのデータコピーを、2つの異なるメディアタイプに保存し、そのうち1つはオフサイト(遠隔地)に保管するようにしてください。

Related Error Notes