復旧作業

自宅サーバがどうにも不安定で,フリーズ後に再起動するとfsckで毎回固まっちゃう.
そのたびに,RAIDのつなぎ先を変えたり,別の起動ドライブから起動してみたり.で,ついうっかりRAID(ミラーリング)の片割れを読めなくしてしまった.

これはやばいってことで,期限切れ間近のツクモのポイントを使って160GBのHDDを\300ぐらいで調達.安くなったねぇ(ちょっと違う).

とりあえず,生きてるほうのHDDの中身を救出すべく,

# dd if=/dev/hdc(コピー元) of=/dev/hdb1(コピー先)

とか,普段使ったこともないような原始的なコマンドをつかてみた.

でも,そもそもマシン自体が不安定なので,コピー中にハングアップしてしまう.仕方ないので,クローゼットの中に眠ってたEPIA-C800を引っ張り出して,マザーボード・CPU・メモリを総入れ替えしてバックアップ開始.今度はうまく行った.ってことはやっぱり,マザーボード・CPU・メモリのどれかが逝っちゃってるんだな.orz

というわけで,とりあえず読み取れる内容を新しいHDDにバックアップしておき,壊しちゃったほうのHDDに流し込んで,そのHDDで試行錯誤することにした.

…ちょっと時間がたっちゃって(現在11/4)よく覚えてないので,とりあえずうまく行った手順を書き残しておく.つもり.

参考にしたのは,ここここ

どうやらext3(ext2も?)ってファイルシステムは,スーパーブロックと呼ばれる管理領域のバックアップを持ってるらしく,fsckやmountなどのコマンドでバックアップ側のスーパーブロックを指定することができるらしい.

まずはそのスーパーブロックのバックアップが保存されている場所を確認.

# mkfs.ext3 -n /dev/hdc5
…
Superblock backups stored on blocks:
32768, 98304, 163840, 2294912, …

次に,バックアップを指定してfsck

# fsck.ext3 -n -b 32768 /dev/hdc5 (とりあえず確認)
…(大量にメッセージが出る)
# fsck.ext3 -y -b 32768 /dev/hdc5 (実際に実行)

次に,バックアップを指定して(指定しなかったかも)mount

# mount -o sb=32768 -o ro /dev/hdc5 /mnt

これでファイルシステムとして読み出せるようになったので,今のうちに全ファイルをバックアップ.

当分の間はEPIA-C800でしのぐことにして,見かけ上,以前と同じようなディスク構成になるようにして復旧.

メモリはもともと使ってたやつに入れ替えてみたけど,問題なく動いている模様.休眠中のマザーボードを見てみたら,コンデンサが1個膨張してる.これが不安定の原因かな.交換したら直るのかなぁ.CPU (Celeron 1.4GHz)は相棒さんからのプレゼントなので,手放したくないんだよなぁ.

  • たぽ

コメントする

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

8