2012年9月21日金曜日

[日常][PC][Linux]HDDレスキューの日

まもなく上期末。
こういう時期はまぁ決まってトラブルが起きるもので。

えぇ、起きました。
会社にて、測定器に接続してデータを取得するPCが起動不能になったようで。お昼前に
「ヘルプ。起動せぇへん。セーフモードもブルースクリーン。もうお手上げ。」
って言う誠に嫌なバトンが回ってきたのでした・・・。

結論から言うと、なんとか起動できる状態にまでは持ってこれました。
HDDは故障しているようなので代替機を用意する必要がありますが、測定器用のドライバや測定データが無事なのは大きいでしょう。

さて、以下は奮闘記。
まず、状況を確認。実は件のPCは1,2ヶ月前にも同様の症状に見舞われました。
その際は一度USBブートのUbuntuで起動し、SMARTを確認して問題がないことをチェックし、(まぁNTFSなんで気休めですが)ディスクチェックを掛けて「前回正常起動時の構成」で無事起動させることができました。

思えばあの時、そもそも起動に失敗してブルースクリーンになってしまったのは事実なんだからそろそろバックアップを取っておくべきですよと進言すべきだったのだろう・・・。

で、今回。前回と同じ程度かしらと思ったらどっこい。USBブートのUbuntuがなっかなか起動しない。
そも、前回はセーフモードにしてすぐにブルースクリーンだったのに、今回は10分ほど粘ってからのブルースクリーンだとか。
UbuntuもGRUBのUNetBootinメニューが出てからロゴが出るまで10分弱。
なんかおかしいと思ってブート画面の裏のコンソール画面を見たら・・・。

ata.0.0.14 Buffer I/O error

みたいなメッセージ(うろ覚えだから多分間違ってるけど)が延々と流れてました。。。

あぁ、こりゃHDD死んでるな、と。

で、しばらく待ってたらなんとかUbuntu起動したんで、とりあえずSMARTを確認。
1個Warningが。Warningとはいえ不良セクタが出てますよ、と。

まぁ十中八九コレだろうなと思いつつもとりあえずディスクチェックを掛けたい。不良セクタがあると分かっているならLinuxではなくWindowsで掛けたい。

ってことで、Windowsのインストールメディアでもって回復コンソール叩こうかなーってDVDドライブのejectボタン押してもトレイが出てこない。
何度押しても出てこない。

あっれこれドライブついてないのか!?(ドライブベイにカバーついてるタイプ)とか思って蓋こじ開けてみるとちゃんとドライブは入ってる。
おまけにejectボタン押したらランプも点滅してる。

だが出てこない。一向にドライブが出てこない。
仕方ないので強制ejectの穴にクリップ突き刺してみるけど出てこない。
フロントのカバーが邪魔でまっすぐクリップがさせないのが原因。

ほんとこういうクソ忙しい時に限ってこういうトラブルに巻き込まれるんだよなとか毒づきながら、とりあえず外付けのCDドライブを探す。
家にならもちろんあるんだけど、会社には存外ないんだよねぇ。

で、うまいこと見つけてきて、XPのインストールディスクをセット。
DLLをロードしつつ、画面暗転、ビデオドライバのロードが終わるかなーと思ったところでまさかの
ブルースクリーン

おい! インストールCDでブルースクリーンってどうしようもないじゃねぇか!

ま、ぼやいてもしゃーない。Ubuntuにて一応HDDの中身は未だかろうじて生きていることは確認してたんだし、とりあえず不良セクタを無視してマルっとミラーリングコピーしたらまだ望みはあるだろうってことで開発用にスタンドアロンで持ち込んでた私のお古Fedoraに接続。

HDDなんて残念ながら余ってはいないので、ファイルサーバの予備に取ってあったHDDを一時的に拝借。
こいつにddコマンドでミラーリングコピー。

今回調べてて初めて知ったんですが、ディスクエラーが出ることが解ってるような場合にはdd_rescueってコマンドを使うほうが楽みたいですね。
残念ながら入ってなかったのでyumでインストール。
使い方は基本的にddと同じ。

# dd /dev/sdb /dev/sdc bs=512KB

bsをあまり大きなサイズにしちゃうとエラー時のスキップに巻き込まれる領域が増えてしまうのでほどほどがいいんだそうで。

コピー開始してそっこーで不良セクタをスキップ。
先頭のほうでどうやら8ブロックほど壊れてたようです。
どうもinode領域が吹っ飛ばされてたっぽい?
/dev/sdb{1,2}
ってことは見えてたんですが、sdb1の方はマウント不能。libpartedもパーティション情報を取りきれてなかったし(カコッカコッカコッを繰り返してた)

コピー元は160GBのHDDで、そのうち上記コマンドではsdb1しかコピーされませんでした。Cドライブだけ。
まぁCドライブが重要なのでとりあえずそれでいいっちゃいいのかな? ddでコピーしているのでコピー先は1.5TBだけど60GBのパーティションで全部だと思われてしまっています。
ま、無事を確認した後にGPartedでリサイズすれば済む話ってことで、起動確認。

あ、ちなみに60GBのコピーに1.5H掛かりました。SATAだからまぁ割と速かったのかな?

さってー無事立ち上がってくれるかなー、いや正直無理よなーとか思ってましたがうれしい誤算、起動しました!
不良セクタをいくつかスキップしてたので、起動はしないやろなぁとか思ってたので予想外でした。

ま、あとはちゃんとした交換用のHDDを用意してそちらにまたミラーリングコピー、続いてDドライブの内容もコピーして復元完了かな。
そのあたりは月曜日。今日は復旧作業だけで定時前だったからなぁ。

ま、バックアップは取っておきましょうってことですね。測定器用のPCの保守ってのはどういう扱いになっているのかにもよりますが、HDDは消耗品ですしね。壊れることは想定しておくべきでしょう。

ちなみに、前回不調だった時に、BIOSの設定でSMARTを有効にしておきましたが、Windows2000はSMARTの警告なんて教えてくれないんだね・・・?
せっかくのSMARTが活かされてなくて残念だわ。

ちなみに同日、別件で開発用のMacBookProも起動不能になっており、こちらに対してUSBブートLinuxで対応しようとしたけれど残念ながらMBPって結構めんどくさいシステムになってるのね?
MSより排他的だわApple。
Fedora17ではなんかGRUBは起動するもののそこから先すすめないみたいね。EFIには対応していると思ったけど、なんかそれだけじゃない?

そちらにも結構いろいろな文書やらソースコードが残っていたらしく、先輩が随分落胆している。。。
なんとかしたかったけどそちらは時間切れ。
また分かり次第試したいところだけれどちょっと時間的に無理かな・・・。

ほんと、バックアップはこまめにね!