ディスクが壊れたらHOWTO

ディスクが壊れた。
Acer の Aspire One (AOA150) というマシンで、2009年の4月に買って、その頃は MacBook Air 持ってなかったので本気の FreeBSD モバイル環境としていろいろ hack してた マシンである。けっこう活躍したが、suspend/resume できない点だけは解決できず、結局 MacBook Air にモバイルの座は譲り渡すことになった。ラップトップを FreeBSD で動かすってのは学生時代からだから、もう10年以上そうしてたわけだけど、最後の FreeBSD/i386 マシンで、おそらく最後の FreeBSD モバイル環境でもある (Mac がダメな方向にいくようなことがあれば、また戻るけどね)。
で、2011年の春に沖縄に引っ越してきてからは自宅サーバとして電源入れっぱなしにしていた。もともと普通のネットブックなので、ええ加減な作りであるし、2年も3年も連続稼働できるわけはないのだけれど、なんとなくちゃんと動いているし、ま、大丈夫だろ、と思ってバックアップもとっていなかった。つまり、典型的なダメな管理者ですね。
それで、ある日、セキュリティ関連のアップデートをしようと思っていろいろコンパイルしてたら、落ちた。そもそもごりごりコンパイルするようなマシンではないので、熱暴走で落ちることはいままでも何回かあったし、ま、そんなものかな、と思って電源を再投入した。
そしたら filesystem が clean でないといって、全然起動しない。さっき固まったからちゃんと shutdown してないわけだし、たいしたことないだろ、と思って、fsck -y すると、何度やっても、
/dev/ad4s1g: UNEXPECTED SOFT UPDATE INCONSISTENCY; RUN fsck MANUALLY.
こんな感じである。こりゃまずいですよ。そう、fsck 何度やっても。幸い、/ とか /usr とか /var は fsck が通ったので、なんとか起動はしているものの、/home の下に web サーバのデータとか置いてあるから、それを救出しなければならない。
そこで、mount (8) を読むと、
-f …. Also forces the R/W mount of an unclean file system (dangerous; use with caution).
と書いてある。こうか。
mount -f /dev/ad4s1g /home
エラー出ちゃった…。でも、readonly では mount できるんじゃないか?って思ってやってみた。
mount -o ro -f /dev/ad4s1g /home
これはうまくいった。あとで調べてみると、どうやら、unclean でも readonly は、ぶっ壊れているところ以外へのアクセスは大丈夫らしい。
それで結局、たまたま家にあった 2GB の USB メモリを newfs して、それを仮の mountpoint に mount して、そこに生きているデータを rsync して、/home に mount しなおして、とりあえずサーバは再稼働。rsync でエラーが何カ所か出たけど、そこは MovableType のテンプレートとかで、再インストールすればよかったので、助かった。
いくつか読めないセクタがあるので、このまま使い続ける訳にもいかないし、AOA150 を分解するのはすごく大変そうだったので、 Acer の Veriton N というマシンを購入してリプレイスした。今度のは Atom D525 で、さすがに前のより速いし、メモリも 4GB 積める。あと、ディスプレイはついてないけど、テレビに HDMI でつなげば済むってのもいいですね。

1 thought on “ディスクが壊れたらHOWTO

コメントを残す