ディスククラッシュ日記 いちにちめ

サーバのHDDがまたおかしくなったらしく、messagesにI/Oエラーが大量に流れ始めた。 って去年交換したばっかじゃん…Seagateまで俺を裏切るのかっ! まぁ作業ログはここにあるので余裕だ、と思ったらapacheも応答がない…

幸いmixiにもメモを残していたので、それを元に応急処置を開始。 まず、ログからエラーブロックを特定、32で割って該当のセクタを調べると、えらく手前だった。

dd if=/dev/ad4s1a of=/dev/null skip=224 count=32 conv=noerror
=> dd: /dev/ad4s1a: Input/output error

場所は特定できたが、去年のようにアクセスしても代替処理が行われない。 仕方ないのでbadsectのお世話になる。 1つずつずらしてddした結果、254セクタ目が壊れているようだったので、

badsect BAD 254
=> block 254 in non-data area: cannot attach

なん…だと… どうやらディレクトリノードか何かが入っている場所が壊れたようで、badsectが通用しない。 しかもどうやら、壊れたのは/homeらしい…なんてついてない。 もっとも、不幸中の幸いというべきか、FreeBSDの流儀に沿って、homeは/usr/homeへのsymlinkなので、homeの内容そのものは無事だ。 /homeにアクセスすると固まるので、とりあえずvipwでhomeを/usr/homeに書き換え、apacheのDocumentRootも/usr/homeに変更。これで当面の停止は免れた。 本格的な修復は週末に行うことにした。