An error occurred during the file system check
TL;DR
サーバを起動したら An error occurred during the file system check
というエラーが出たので root ログインして fsck
したらとりあえず治った。
Zabbix からアラート
とりあえず状態を確認する必要があるので ssh したところ応答が来なかった。
ping を投げてみるとどうやら通るので、ネットワークは生きてるし、サーバ自体は起動しているらしい。
現地作業
外観観測
遠隔での操作は無理だったので現地に向かい、サーバを確認してみる。
電源ランプは付いているが、 HDD のアクセスランプは明滅していない。
LAN のランプは時折光っている。
接続
とりあえずディスプレイとキーボードを接続してみる。
しかしキーボードが認識されない。
ディスプレイもノーシグナルの表示。
検討
最初に確認した段階で HDD に障害がありそうだと直感していたので、2つのシナリオを検討した。
- シャットダウンし HDD を持ち帰り、別なマシン上でマウントしてデータを取り出す
- 電源長押し再起動
持ち帰りを選択した場合はシステムの復旧率は上がるが、復旧の時間は非常にかかる。
また、マウントしてデータが読み出せなければ、データ復旧業者等を利用しなければならないので、金銭的にも時間的にもコストがかさむ。
一方電源長押しすれば、再起動するかもしれない。
実際のところサーバが不調だった時に、いろいろ調整しても治らなかったのに再起動したら改善したということもまぁよくある(正直良いノウハウではないが)。
しかし、再起動時のあれこれでデータが損壊する可能性も否定できない。
ワンチャンあるんじゃね
30分ほど悩んだものの、結局電源長押ししてみた。
そしたら普通に OS が上がってきた。
喜んでいるのもつかの間、エラーが出ているようだ。
読んでみると、以下のどっちかを行えと書いてある。
- ルートでログインして fsck しろ
- Control 押しながら D を押せ
とりあえず Control + D
を試してみたところ、再起動してまたこの画面に戻ってきた。
おとなしく fsck しましょうか
ルートパスワードを入力しログイン。
入力待ちになってるので fsck
を入力し Enter を押すと、何やら作業が始まった。
しばらく待っているとディスクチェックと修復が行われる。
ときどき Fix<y>?
と出てくるので Enter で応答してやると次々と修復が進む。
リブートしろと書いてあるので、Control + ALT + DELETE
で容赦なく再起動する。
元気に走り回る CentOS5.8 ちゃんの姿が
ということで、 今回は これで無事サーバが復旧した。
必ずしもこれで治るわけじゃないし、今回もこの後いろいろ検証しなければならないし、とりあえずバックアップの取得はした方が良い。
今回のサーバは HDD の容量が 25GB という化石のようなマシンだったので、張り付いて Enter 叩くマンで良かったし、作業時間も1時間かからない程度だった。
しかし、今時のサーバだと恐ろしいことになることは想像に難くないので、 fsck -y
とした方がいいと思う。
Discussion