CentOS で ata 2.00: softreset failed みたいなのが表示されて起動できなくなったので対応してみた。
CentOS で約2年間ほど24時間運転しているサーバーがある日、アクセスできなくなっちゃいました。
症状としては、ping の応答はあるが、Samba でファイル共有している部分にはアクセスできない。
サーバーに接続しているキーボードを叩いてみても、特に反応なし。。。
フリーズ?、と思ったので、再起動してみたところ、起動できなくなりましたー。という感じです。
今回、いろいろやってみて、何とか起動に成功したので、メモ的な感じで書いてみます。
起動できないときのアクセスランプ。ずっと光ってます。きっと頑張ってます。。。
サーバー構成
起動できないときの症状詳細
通常、CentOS 6.5 を起動すると
CentOS のロゴとともに、進捗状態を表す円が表示されます。
しばらくすると進捗状態を表す円が消えて GNOME などのデスクトップ環境をインストールしていると、
ログイン画面が表示されます。
今回は、起動後の進捗状態を表す円が消えたところで
CentOS のロゴだけ表示された状態で止まりました。
その状態でキーボードを叩くと起動中の状態が分かるコンソール画面が表示されます。
そこで表示されていたエラーメッセージが下記のものです。
ata2.00: exception Emask 0x0 SAct 0x80000 SErr 0x0 action 0x6 frozen ata2.00: failed command: WRITE FPDMA QUEUED ata2.00: cmd 61/08:98:40:5c:44/00:00:01:00:00/40 tag 19 ncq 4096 out res 40/00:00:00:00:00/00:000:00:00:00/00 Emask 0x4 (timeout) ata2.00: status: { DRDY } ata2.00: revalidation failed (errno=-5) ata2.00: revalidation failed (errno=-5) ata2: softreset failed (device not ready) ata2: softreset failed (device not ready) ata2: softreset failed (device not ready)
また、このエラーメッセージのあとに
INFO: task jbd2/dm-0-8:418 blocked for more than 120 seconds. Not tainted 2.6.32-31.17.1.el6.x86_64 #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
というメッセージが何度か表示されます。
この状態で10時間くらい放置していましたが、起動完了することはありませんでした。
起動できない状況での試行錯誤
エラーメッセージより、SATA の2番ポートに接続されている SSD に何か問題があると推測してみました。
シングルユーザーモードで起動
シングルユーザーモードで起動してみると、エラーメッセージが表示されつつも一応起動しました。
【CentOS】強制的にシングルユーザーモードで起動する@インフラ系SEのやさぐれblog
そこでソフトウェア RAID の状態を確認すると
システム用の RAID 1 の2台中の1台が認識されていないことを確認。
この状況でいろいろ復旧を試みたかったのですが、
しばらくするとキーボードの入力を受け付けなくなり、フリーズの様な状態となってしまいました。
SATA 2番ポートの SSD をクローンして起動に成功
最終的にエラーが発生していた SSD を別の HDD にまるごとクローン。
エラーの SSD の代わりに クローンした HDD を取り付けることで起動に成功しました。
EaseUS Todo Backup Free@日本語公式(窓の杜にもあるよ)
上記のソフトを利用して、Windows PC からクローンを行いました。
エラーが出ていた SSD の動作確認のため、Windows PC でフォーマットして使用できるか試したところ、
フォーマット中に PC がフリーズして、フォーマットが完了できませんでした。
どうやら、読み取りは可能だけど、書き込み操作はダメっぽい。