koyoweblog log

2010/10/11 までの http://d.hatena.ne.jp/sasashin の記事をインポートしただけです。

GLANTANK のトラブルシュート

Windows 機から Samba で繋いでいた GLANTANK(ARM で DebianNAS)のファイルが読めなくなった。昨日の落雷で瞬停した影響かなー。

ssh でログインして ls したら Input/output error が発生したため、当該のディスクを unmount して fsck を途中まで掛けたところで一度中断して /sbin/reboot を実行(多分これが失敗の始まり)。お約束通りに再起動失敗。HDD アクセス LED が一瞬だけ光ってうんともすんとも言わない。

とりあえず筐体開けて HDD 取り出して IDE-USB 変換して Ubuntu 入れた PC に接続。fsck 掛けてから中身を覗いたらファイルは生きてるぽい。なので、GLANTANK に HDD を戻して再起動……失敗。

再度 PC に繋ぎ、/etc/fstab を編集して起動時の fsck をしないようにして再挑戦……失敗。/var/log/dmesg あたりを眺めてトラブルのあたりをつけようとしたら、そもそもログのタイムスタンプが更新されてない。こいつ起動する気ゼロじゃねーか……。

ということは、/boot あたりに問題があるな(と気付くまでに相当かかってるわけですが)ということで確認すると、/boot/initrd はちゃんとある……んだけど symlink 先のファイルがない! こいつか!

ここからGLANTANK 用 2.6.18.1 カーネルイメージを入手して、/boot と /lib に展開してから再起動。これで勝つる!……あれ?だめですか? HDD アクセスランプの光り方が変わったから、何かが起きてはいるんだろうけどなあ(このあたりで Amazon のカートに QNAP の NAS と HDD 2TB×2 を放り込む)。

いろいろググってたらRAMデスクイメージで絶対欠かせない機能は、ルートデバイスの指定です。これを、間違えると起動しません。との記述を発見。まーそりゃそーだわなー……って元のイメージ作った人と自分のディスク構成が違うせいか! 解決編キタコレ!

もらいものの /boot/initrd を展開して linuxrc を覗いたらルートパーティションが RAID。うちのは /dev/hda2。なので、「ROOT_DEVICE=0x0302」にして、ついでに余分な処理をざっくり消して /boot/initrd を再作成(参考:RAMデスクイメージ initrd を書き換える How to)。これでダメなら……もう少し、がんばらないとだね(ダメでした)。HDD アクセスしまくってるし、/var/log/ のログファイルのタイムスタンプは更新されてるし、起動自体はしてそうなんだよなあ。

あとはネットワークまわりがおかしいんだろうなあ。ってことでログを grep して eth0 の文字を引っ掛けてみたら、eth0 に IP アドレス割り当たってないよねこれ。てか、/var/log/messages の「udev: renamed network interface eth0 to eth1」ってなんですか? eth0 が無くなってる? カーネル入れ替えたら udev が効いちゃってんのか……いらんことしやがって……。このへんを参考にして /etc/udev/rules.d/70-persistent-net.rules 修正。何度目かの今度こそ、で再起動したらようやく ping も ssh も Samba も通りました。めでたしめでたし。

分解したハードを組み立てなおすのはめんどいから後でやろう……。