玄箱をfsck(解決編)

こちらのエントリの続きです。

なんとかfsck完了。コメントなどでアドバイスをいただいた方々、ありがとうございました。以下作業メモです。

それにしてもあんまりよくない環境(昼間はエアコン無し) + 18時間/1日の起動、を丸一年続けていても元気に動いているってなかなかいい感じ。玄箱がエラいのか、バルクのHDDの運がよかったのか。

基本方針

起動後にHDDを"ro"でリマウントできないならはじめからマウントしなきゃいいじゃない。

宴の支度

そういえばセットアップしたときなんか緊急起動モードなんかがあったなぁ、と言うことで、内蔵ROMから起動する方法が会ったことを思い出しました。
まずは制御用フラッシュメモリ/dev/fl3に緊急起動モードで起動するという旨を書き込みます。

# クライアントマシンからssh玄箱にログインして

 $ mount
 // して、出力結果を覚えておく。
 $ sudo sh -c "/usr/sbin/write_ng > /dev/fl3
 // 確認。私の環境ではこれをやるとtelnetコネクションが切れたのでその後再ログインをしました
 # cat /dev/fl3
 NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG...
 $ sudo shutdown -h now

すると次に起動したときには緊急起動モードで起動してくるので、telnetでログイン。

IPアドレス 192.168.11.150
ログインユーザ root
パスワード kuroadmin

# クライアントマシンにて

 ## クライアントマシンのIPアドレスを変えて同じサブネットへ
 $ sudo ifconfig eth0 192.168.11.2

 ## とりあえずtelnetでログイン
 $ telnet 192.168.11.150

 KURO-BOX-EM login: root
 Password: (kuroadmin)

うまくrootで緊急起動モードの玄箱へログインできると、プロンプトは"#"に変わります。てかrootログイン中だし。
この状態では内蔵のフラッシュメモリから起動してるので、HDDには触り放題。デバイス名は通常起動時と同じく /dev/hda* なのでそれぞれ fsck しまくります。

f_ck

# 玄箱telnetログインして

 // HDDの既mount状況を確認
 # tune2fs -l /dev/hda1 | grep -i mount
 // fsckをかける。とりあえずチェックのみ。
 # fsck /dev/hda1
 ...
 // チェック結果を確認
 # echo $?
 0
 # 

チェック結果というか、fsckの戻り値が"0"ならとりあえずチェック異常はないということで。これを普段マウントしていてチェックできないファイルシステム分繰り返します。

もしも異常が見付かったら直す。ただ、私はこれ(fsck -y)で一度coLinux用のファイルシステムを全滅させた*1ので、バックアップその他の備えをしてからやったほうがいいかと。

# 玄箱telnetログインしたままで

 // fsck -y だと勝手に直してくれます。
 # fsck -C /dev/hda1

宴の始末

fsckが終わったらあとは通常起動モードに戻して再起動してやればOK。

# 玄箱telnetログインしたままで

 # /usr/sbin/write_ok
 // 確認。私の環境ではこれをやるとtelnetコネクションが切れたのでその後再ログインをしました
 # cat /dev/fl3
 OKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOK...

 // 再ログイン後
 # /sbin/shutdown -r now

再起動すれば、普段用のIPアドレスで起動してくるはずなので、クライアントも普段のIPアドレスに戻します。

# クライアントマシンで

 $ sudo /etc/init.d/net.eth0 restart

ここまでやれば、あとは玄箱側の再起動完了を待って通常どおり使えるはず。我が家のも元気に動いてます。よかった。

とはいってもいろいろな環境があるでしょうから同じようなことではまってる方々は自己責任でどうぞ。いろいろヒントやインスピレーションをくださった方々、ありがとうございました。

作業環境

クライアント Gentoo Linux(x86-2005.1 <- 上げなきゃ)
玄箱 Debian GNU/Linux(sarge)

それぞれてきとーに週次くらいでアップデート中。

*1:まったく空のファイルシステムになった。どうしようもなくて笑った。