どっぷり つかりました
なにに?
月末も近く、ログの処理をしてあげようと、いつものCornを実行。
毎度、毎度のことで事無くして終わった。
今回の主人公は SUNのenterprise3500
先週あたりに、時間があったので少しソフトのバージョンを上げておいた。
それが不幸の始まりだった・・・・
なぜか 表向きは事無くコンパイルできてるのに、実行しようとすると
libgcc_s.so.1: のerrorが・・・・
libc.so.1 => /usr/lib/libc.so.1
libdl.so.1 => /usr/lib/libdl.so.1
lddでライブラリーを見てerrorのない他のmachineと比べて、単純にリンクを張り直してあげよう・・・・と。
ln -s /usr/local/lib/libstdc++.so.6 /usr/lib/libgcc_s.so.1
で、ファイルがあるから出来ないと怒られて
/usr/lib/libgcc_s.so.1を削除して と思って 入れたコマンドが
ここから信じられない行動を・・・・
rm /usr/lib/libc.so.1
間違えた と思った瞬間 真っ青に・・・・
おいおい これを消しちゃったら・・・・
そう 最悪な事態に!
ことごとくコマンドは/usr/lib/libc.so.1が無いと怒られ、一切受け付けない
こういうときは本当に信じられないことをする。
シングルモードで起動すれば・・・・
shutdown -y -i5
あはは 出来ないって!何をしたかというと電源ケーブルを引っこ抜く。
はぁー 自分が情けない。
openbootに落ちて boot -s
ぎゃはは 立ち上がらない。
そりゃそうだ rootのshellsは禁断の/usr/local/bin/tcshに変えてた。
メンテナンスモード移行時にpassword入れたら/usr/lib/libc.so.1が無いと怒られる。
放心状態で最悪のこの事態にどう対応したらいいか選択に迫られる。
もっとも、こうなったら選択は無い。
CDブートでHDマウントして無いファイルを復活させる。それしかない!問題は沢山あるけど・・・・
そう、以前某クライアントがroot のパスワードを忘れて、設定し直してくれと言われたことを思い出す。
簡単ではない。
mountする際に、fsckしないとmount出来ないんだぞ!
知ってる?やったこと無いだろう・・・・・ホワイトペーパー通りではない。
それをすると決まって数え切れないファイルがlostに落ちていく。
とりあえず CDをセット。
boot cdrom -s でシングルモード。
プロンプトが上がって
mkdir /tmp/hd
mount -F ufs /dev/dsk/c0t0d0s0 /tmp/hdd
案の定 fsckの要求が・・・・
で fsck /dev/rdsk/c0t0d0s0
はぁー 怖いので対話モードでやったけど、でてくるでてくる いい加減20分くらい y エンター の繰り返し。
で やっと mount 出来た。
touch でとりあえず空ファイルを作り、rootのshellを変える。
で boot -s
2度ほどパニックで落ちるけど、何とか立ち上がる。
ファイルを戻して、再起動
ふー 延々2時間ほどの修羅場でした。
この間、このマシンが受けもっている全てのサービスが停止に・・・
きっとクレームが来るだろう・・・・ 夜中なので解らないかな・?
と言いながらも 今の時間までまだクレーム無し。あは よかった!?
なれた作業は慣れが落とし穴。
教訓!
今まで この作業の後始末をして現在 事無く稼働中!
んーー 稼働率 年間99%はかろうじて・・・
でも まだ GCCのerrorのリンクのし直しはしていない。
無理クリsetで逃げてるけど、根本を直さないと・・・・