唐突に玄箱が黒箱になった (涙 投稿者:jun 投稿日:2004/09/03(Fri) 01:58 No.298 | |
|
glibc関連の作業中に ld.so.1 等を消してしまって、突然の GAME OVER。 起動中のbash以外のコマンドはシェアドライブラリ無いというエラー。 まだこの時点では、「標準で busybox が入っているから大丈夫」と思って いました。しかし、標準の busybox は static でコンパイルされていなかった。
覚悟の上の再インストールでしたが、ハードディスクを初期化するのに デスクトップPCに接続するしか他に手段が無いことに気付く。 うちのデスクトップPCは色々なものに埋もれて横置きになっています。 結局、雑多なものの移動、掃除、無数のケーブルの整理をすることになって しまいました。この辺は覚悟していませんでした。
ついでにUSB接続の周辺機器の整理をして、640M の SCSI MO と USB2-SCSI 変換ケーブル(ロジテック LUB-SC2) を玄箱用に使うことにしました。 玄箱に 10GB ハードディスクを戻して、最初から KuroBoxSetup と KuroBoxUpdate を実行して、黒箱は無事に玄箱に戻りました。
で、640M MO は mount /dev/sda /mo するだけで簡単に使えるようになりました。 マウントポイントとして mkdir /mo しています。電源スイッチを MO と玄箱を 連動させて、玄箱から MO へのバックアップがいつでもできるようになった事で、 今後の GAME OVER のダメージが少なくなりそう...
# 明日からもう一度コンパイルの日々... |
| スタティックリンク版 busybox-1.00-rc... jun - 2004/09/04(Sat) 02:15 No.299 | |
|
|
今回の大失敗はLinuxシステムで最も重要な部分を削除してしまうという、 自分でも信じられないことをしでかしたわけです。 しかし busybox がスタティックリンクで作成されていたならば、玄箱単体で 復旧できたはずです。そこで、まずスタティックリンク版の busybox を インストールしました。
https://www.busybox.net/ に8/16に busybox-1.00-rc3.tar.gz が公開されて いたので、それをコンパイルしました。0.60.xシリーズ(玄箱標準は0.60.2)と は異なり、make config または make menuconfig でコンパイル条件を設定します。 玄箱は ncurses が入っていないので make config で長い質問に答えていきます。 その後、make、make install しますが、13分程度でエラーとなりました。 バイナリは作成されているので、/sbin にコピーしました。
root@KURO-BOX:~# /sbin/busybox BusyBox v1.00-rc3 (2004.09.03-15:43+0000) multi-call binary
Usage: busybox [function] [arguments]... or: [function] [arguments]...
BusyBox is a multi-call binary that combines many common Unix utilities into a single executable. Most people will create a link to busybox for each function they wish to use, and BusyBox will act like whatever it was invoked as.
Currently defined functions: [, adduser, ar, ash, awk, basename, bunzip2, busybox, bzcat, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut, date, dd, deallocvt, df, dirname, dmesg, dos2unix, du, dumpkmap, echo, egrep, env, expr, false, fdisk, fgrep, find, free, getty, grep, gunzip, gzip, halt, hdparm, head, hexdump, hostname, hwclock, id, ifconfig, ifdown, ifup, inetd, init, insmod, install, kill, killall, linuxrc, ln, loadkmap, logger, login, ls, lsmod, md5sum, mkdir, mknod, mkswap, mktemp, modprobe, more, mount, mv, netstat, nslookup, od, openvt, passwd, patch, pidof, ping, pivot_root, poweroff, printf, ps, pwd, readlink, reboot, reset, rm, rmdir, rmmod, route, rpm2cpio, sed, sh, sha1sum, sleep, sort, strings, stty, su, sulogin, swapoff, swapon, sync, tail, tar, tee, telnet, telnetd, test, time, touch, tr, traceroute, true, tty, umount, uname, uniq, unix2dos, unzip, usleep, vi, wc, which, whoami, xargs, yes, zcat
fileコマンドでスタティックリンクであることを確認
root@KURO-BOX:~# file /sbin/busybox /sbin/busybox: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1, statically linked, stripped
これで少し安心。
ネットワーク越しにしか操作できない玄箱では sambaもスタティックリンクで 作成したほうがいいかもしれません。ちなみに標準では: root@KURO-BOX:~# file /usr/sbin/smbd /usr/sbin/smbd: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1, dynamically linked (uses shared libs), stripped root@KURO-BOX:~# file /usr/sbin/nmbd /usr/sbin/nmbd: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1, dynamically linked (uses shared libs), stripped
|
| 玄箱のEMモード jun - 2004/09/06(Mon) 00:43 No.302 | |
|
|
前回、玄箱が起動しなかったとき、HDDをデスクトップPCにつないで 初期化しましたが、玄箱単体でEMモードから色々HDDを操作できることが 分かりました。玄箱の先輩方のWebページやKURO-BOX-EMの中を色々見て 回った結果です。
telnetで操作できている間ならば、以下のように/dev/fl3に対して NGを128回書き込めば次回の起動時にはEMモードで起動します。
#!/bin/sh cat >/dev/fl3 <<END NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG\ NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG\ NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG\ NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG END
shared library が壊れているような場合には、static link版の busyboxが使える場合、
busybox cat >/dev/fl3 <<END NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG\ NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG\ NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG\ NGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNGNG END
でOKです。
中途半端にHDDが壊れたような場合は、適当な別のハードディスクをつないで 赤いLEDが点灯するまで待って、再度起動すればEMモードで起動します。 ハードディスクを戻して、mount /dev/hda1 /mnt のようにマウントすれば HDDに対して色々な操作ができます。
ノーマルモードに戻すにはOKを書き込みます。
#!/bin/sh cat >/dev/fl3 <<END OKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOK\ OKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOK\ OKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOK\ OKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOKOK END
カーネル以外は安心して弄り回すことができますね。 |
|