専業主夫生活を楽しんでいたら、自宅サーバーのHDDが壊れました。嫁さんが先に気がついて、ちょっと診てみたらなんだか挙動が怪しかったのでとりあえず再起動(←悪い癖だ。)をしたところ、GRUBからLinuxが立ち上がらなくなってしまいました。HDDが正常に読み込めない感じです。

で、その後色々右往左往したのですが、結果的には以下の手順で復旧しました。

  • 故障したHDDを別のLinux機に接続
  • SMARTでそろそろ故障するという状態になっていることを確認
  • gddrescueをインストール。新規購入したHDDにデータをコピー
  • 何日間も時間がかかる(途中無駄に中断したりやり直したりゴニョゴニョしたけど全く無意味だった)
  • 完了後、fsckで修復
  • HDDを付け直し、起動に成功

まとめてしまうとこれだけか・・・。当初ddを使っていて、あまりの処理の遅さに(1MByte/sec程度)待ちきれず処理単位を調整しだしたのが良くなかったです。なぜか処理のはじめの方は40MByte/sec程度まで改善したのですが、中盤以降になるとデータ転送速度が極端に落ち、100kByte/sec程度に落ちてしまう・・・・ということを何度も繰り返しました。そういうものなのか、私のオペレーションの問題なのかは未だに不明…。その後ddrescueの存在をしり、それで実行することで速度は微妙に改善しましたが、やはり処理速度が100kByte/sec程度に落ちてしまう箇所があり、単純計算するとコピーだけで10日以上かかるような計算になり、途方にくれてました。

でも、結局色々やっていたらHDDが持ち直したようで、転送速度が上がり最終的には丸2日程度の時間をかけて250GBのコピーが完了しました。結局エラーは3つだけだったので、ほぼすべてのデータが救えました。

それにしても、やっぱりバックアップはきちんとやっておかないとダメですね。自作のスクリプトでgmailに添付ファイルとして送りつける仕組みを作ったので安心していたのですが、それがきちんと動いてなかったり、メールに抜け落ちがあったりしてダメダメでした。ケチらずにHDDを購入してミラーしておくことにしようと思います…。