自宅サーバ復旧

土曜日,自宅のサーバが故障した。NFS マウントしたビデオデータを Mac OS から観ていると頻繁に停止する。挙げ句,サーバ接続が切断される。FreeBSD サーバのログを確認すると,LBA read に失敗した旨のエラーメッセージが大量に出力されている。南無三宝,ディスクがぶっ飛んだらしい。サーバをリブートしたところ,ハードウェアの probe のあと fsck で回復不能エラーを検知して起動が停止してしまった。「エッチな映画ばかり観てるからバチが当たったのよ」とは妻。正しい。教訓その1:NFS サーバにエッチな映画を入れて楽しむのはやめよう。

ディスクを買って来て,交換し,FreeBSD をインストールし,Apache やらなにやら大量のプログラムをインストールし,サーバ環境を整え,... と考えると気が遠くなった。しかしメールサーバが使えなくなるとやっかいか,ブログもパーか,などなど考えるにつけ,しようがないなーとサーバ復旧に着手したのである。おかげでこの連休はほとんどパーになってしまった。

日曜日,娘の学園祭を見に行ったあと,川崎駅前ヨドバシカメラで Hitachi Global Storage Technology 社製の SATA2 7200 rpm 1TB HDD バルク品を 5,000 円足らずで購入。帰宅して,サーバ筐体を開けて HDD を交換しようとしたら,なんと壊れた既設の HDD が取り外せない。このベアボーンは,HDD を装着したネジを覆うように,特殊な方法で電源を固定していたのである。「じゃ増設」と考えたんだけど,予備の SATA 用電源コネクタがひとつも空きがない。しかも,SATA 用ケーブルもない。私の知らないうちに(PC を自分で組立てるなんてもう 15 年くらいやっていない) PC の世界も当然ながら様変わりしているわけで,内蔵 HDD の電源コネクタはいまや 4pin ならず,マザーボードとの接続も IDE ケーブルならぬ SATA ケーブルなんである。昔悩んだ IDE プライマリ/セカンダリのジッパ設定から解放されたのは嬉しかったんだけど。ふたたびヨドバシカメラに逆戻りして,4pin-SATA 電源変換ケーブル,SATA ケーブルを追加購入しなければならなかった。教訓その2:内臓周辺機器を増設するときは,あらかじめ筐体内部を確認し,追加の必要なケーブル類を洗い出しておこう。

20110920-pcsata.png
4pin-SATA 電源変換ケーブル(上)/SATA コネクタ(下)

取得してあったシステムのバックアップは何ヶ月か前のものであり,ブログをはじめ日々更新されるデータは最新状態ではない。教訓その3:バックアップはこまめに取得し DVD-R などに焼いておこう。ディスクを「増設」するついでに,壊れた HDD 内のまだ生きているデータを漁って,使えるものは使おうということにした。今日はその苦肉の方法のメモを残しておく。

まずは SATA のプライマリソケットに再度旧 HDD をつないでブートする。当然,fsck で悲鳴を上げて,次のメッセージとともに停止する。

Automatic file system check failed; help!
ERROR: ABORTING BOOT (sending SIGTERM to parent)!
Sep 18 16:03:45 init: /bin/sh on /etc/rc terminated abnormally, 
going to user mode
Enter full pathname of shell or RETURN for /bin/sh:

help! は機械のお前じゃなくこっちのセリフじゃ! これに対し,Enter キーを押して,シングルユーザモードでログインする。自作プログラム,文書,ブログ記事など大事なデータを格納しているディスク・パーティションをマウントしてみる。/etc/fstab を参照し,デバイス名とマウンティングポイントを特定する。これらは利用者のインストールの仕方によって変わるので注意。

# cat /etc/fstab
# Device  Mountpoint FStype Options Dump Pass#
/dev/ad4s1b  none    swap   sw      0    0
/dev/ad4s1a  /       ufs    rw      1    1
/dev/ad4s1g  /home   ufs    rw      2    2
/dev/ad4s1h  /shared ufs    rw      2    2
/dev/ad4s1f  /tmp    ufs    rw      2    2
/dev/ad4s1d  /usr    ufs    rw      2    2
/dev/ad4s1e  /var    ufs    rw      2    2
/dev/acd0 /cdrom  cd9660 ro,noauto  0    0
linprocfs /compat/linux/proc linprocfs rw 0 0

私の目的とするデータは /usr/home にあるので,この二つだけをもう一度 fsck でチェックし,そのあとで mount してみる。幸いにもこれらパーティションは無事だったようである。vi などのツールは /usr/bin にあるので,それらツールを使う場合もマウントしておく必要がある。

# fsck -y /dev/ad4s1d
# fsck -y /dev/ad4s1g
# /sbin/mount /dev/ad4s1d /usr
# /sbin/mount /dev/ad4s1g /home

必要なデータをアーカイブする(ここでは省略)。上記マウントができれば当該ファイルシステムは書き込みも可能なはずである。ルートパーティションはおそらく書き込み不可なので,アーカイブはマウントしたファイルシステムに格納する。アーカイブデータを別のコンピュータにコピーするには,ネットワークが使えないといけない。この時点ではネットワーク通信の準備ができていないので,次にこれを行い,取得したデータを scp (ftp でもよい) で別マシンに転送する。以下では anotherpc のユーザ user のホームディレクトリにコピーしている。anotherpc 上でも ssh が動作可能でなければならない。Mac OS など UNIX 系 OS なら OK である。

# ifconfig msk0 inet 192.168.1.4 netmask 255.255.255.0
# scp mydata-archives.tar.gz user@anotherpc:/Users/user/

msk0 はネットワークインタフェース名であり,利用する LAN カードによって変わって来る。忘れてしまっていたら,/etc/rc.conf 中に ifconfig_XXX=... なる行があるはずなので,その XXX をネットワークインタフェース名に指定する。IP アドレスは使っていたものをそのまま使うのがよい。詳細は ifconfig のマニュアルを参照。

必要なデータをすべて別マシンに転送し終わったら,ほっと一息。煙草で一服し,コーヒーでも飲もう。シャットダウンし,電源コードを抜く。新しく追加した HDD の SATA ケーブルをプライマリに,旧い HDD のケーブルを DVD ドライブの次のソケットあたりに繋ぎ直す。ついでに筐体内部に溜まりまくったホコリをエアスプレーで吹き払っておく。とくに冷却ファンの近辺を念入りに。これで PC の騒音がピタリと止む。

ここからは新しい HDD に最新バージョンの FreeBSD を導入する作業となる。私は Mac で,FreeBSD 8.2-RELEASE の DVD イメージをダウンロードし,ディスクユティリティで DVD-R に書き込んで,このメディアでインストールを行った。とにかく真っ先に sendmail,POP 環境を整えた。その後,上で取得したコピーデータを再度新環境に転送してからもろもろの復旧を行った。まだまだ入れ込めていないプログラムもたくさんあってうんざりである。もう二度とやりたくない。けれども,3 年に一度はやるはめになる。次はもうやる気力が起こらないかも知れない。教訓その4:自宅でサーバ運用なんてやめたほうがよい。

最後に。警告その1:上記方法がいつもうまく行くとは限らない。 
 

P.S.

復旧中に,misima 旧字旧仮名変換支援サービスを使ってくれている友人から「つかえなくなっちゃったけど,どうしたの? 体調でも悪くしてサーバ運用やめちゃったの?」とのメールをもらった。ありがとう。四苦八苦しながらもリカバリしましたよ! 教訓その5:へたに自作プログラムの公開などしないほうがよい。

Moon Calendar

Profile

ISAO YASUDA。システムエンジニア。神奈川県在住。昭和 30 年代を懐かしむオヤジ。ロシアに興味があります。
[more], [About our site]

Notice

この文書はフィクションであり,実在する個人,団体等とは一切関係ありません。

R-18 指定サイトです。そのうち「18 歳以上ですか」の認証を入れる予定です。

文書の記述内容は無保証です。不適切な表現があればコメントにてご指摘ください。

コメント,トラックバックは,現在,運用を停止しています。ご意見等ありましたら isao@yasuda.homeip.net 宛電子メールにてお願いします。

Links

Entries

About this entry

Written by isao at 2011年9月20日 19:41.

Previous: 岩井志麻子作品

Next: sendmail, Movable Type のリカバリ

Recent Entries in Main Index.
All Entries in Archive Index.

March 2012

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Emacs: Monthly Archives

Powered by Movable Type 5.12 Powered by FreeBSD 8.2-RELEASE
blog counter