No. | 条件 |
1 | /etc/hddrootmode が存在しない |
2 | /etc/rootfs_ok が存在しない状態でのブートが 3回以上連続した |
3 | カーネルが持つファームウェアバージョンより /etc/linkstation_release のファームウェアバージョンが古い |
[root@giga root]# cd etc/init.d/ [root@giga init.d]# grep rootfs_ok * bootcomplete.sh: ROOTFS_OK=/etc/rootfs_ok [root@giga init.d]# grep ROOTFS_OK * bootcomplete.sh: ROOTFS_OK=/etc/rootfs_ok bootcomplete.sh: date > $ROOTFS_OK/etc/rootfs_ok を作っているのは、 HDD にあるファームの /etc/init.d/bootcomplete.sh。
と、書いたもののここからが長かった。
オリジナルの HDD は S-ATA で、しかも /dev/sda2 は xfs。
xfs をマウントできるのは、Intel の実験機か、LS-GL。
root@UDE:~# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda2 484672 169272 315400 35% / /dev/ram1 15360 80 15280 1% /mnt/ram /dev/ls_disk1_1 190387 64205 116353 36% /boot /dev/ls_disk1_6 19242992 14656 19228336 0% /mnt/disk1 /dev/ls_usbdisk2_1 194443 68319 116085 37% /mnt/usbdisk2 root@UDE:~# mkdir /tmp/root root@UDE:~# mount /dev/sdb2 /tmp/root XFS mounting filesystem sdb2 root@UDE:~# root@UDE:~# cd /tmp/root/etc/ root@UDE:/tmp/root/etc# ls apache ld.so.conf rsyncd.conf apcupsd linkstation_release rsyncd.secret atalk locale.alias samba cron localtime security daemonwatch.list login.access services default login.defs shadow dhcpc logrotate.d shadow- fstab melco shadow.orig ftpusers moduli shells group mtab skel gshadow nsswitch.conf ssh_config hddrootmode ntp.conf ssh_host_dsa_key host.conf openldap ssh_host_dsa_key.pub hosts pam.d ssh_host_key hosts.deny pam_smb.conf ssh_host_key.pub hotplug.d passwd ssh_host_rsa_key inetd.conf printcap ssh_host_rsa_key.pub init.d profile sshd_config initrd_ver profile.d sysctl.conf inittab proftpd syslog.conf issue protocols yp.conf issue.net resolv.conf ld.so.cache rootfs_booting root@UDE:/tmp/root/etc# date > rootfs_ok root@UDE:/tmp/root/etc#再起動 これでOKのはず。再起動してみる。
: linuxrc:choose operation (timeout 4[s]) 1:RamRoot other:HddRoot ? -HddRoot- kjournald starting. Commit interval 5 seconds EXT3-fs warning: maximal mount count reached, running e2fsck is recommended EXT3 FS on sda1, internal journal EXT3-fs: mounted filesystem with ordered data mode. XFS mounting filesystem sda2 Starting XFS recovery on filesystem: sda2 (dev: sda2) Ending XFS recovery on filesystem: sda2 (dev: sda2) PRODUCTID=0x00000009 KERNEL:2006/6/11 14:33:21 not found BUILDDATE *** hddSys is old. use initrd mode. *** : : BUFFALO INC. LinkStation series LS-GL(IESADA) LS-GL-EM67A login:まだあかんか。
"*** hddSys is old. use initrd mode. ***" になるのは、No.3 /proc/buffalo/firmware /etc/linkstation_release の整合が取れていない時。
BUFFALO INC. LinkStation series LS-GL(IESADA) UDE login: root Password: root@UDE:~# mkdir /tmp/root root@UDE:~# mount /dev/sdb2 /tmp/root XFS mounting filesystem sdb2 root@UDE:~# cd /tmp/root/etc/ root@UDE:/tmp/root/etc# cat linkstation_release root@UDE:/tmp/root/etc#linkstation_release が空っぽ。
root@UDE:/tmp/root/etc# ls -l linkstation_release -rw-r--r-- 1 root root 84 Jul 22 14:20 linkstation_releaseあれ?84バイトある。
root@UDE:/tmp/root/etc# od -xc linkstation_release 0000000 0000 0000 0000 0000 0000 0000 0000 0000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0000120 root@UDE:/tmp/root/etc#何とオールゼロ。
root@UDE:/tmp/root/etc# cat /etc/linkstation_release VERSION=1.00 SUBVERSION=HDD 0.41 PRODUCTID=0x00000009 BUILDDATE=2006/06/15 10:15:16 root@UDE:/tmp/root/etc#と中身あり。
root@UDE:/tmp/root/etc# ls -l /etc/linkstation_release -rw-r--r-- 1 root root 84 Jul 22 14:20 /etc/linkstation_release root@UDE:/tmp/root/etc#日付もサイズも同じで中身が違う。
とりあえずコピーする。
root@UDE:/tmp/root/etc# cp /etc/linkstation_release linkstation_release root@UDE:/tmp/root/etc#もうこれで大丈夫だろう。
linuxrc:choose operation (timeout 4[s]) 1:RamRoot other:HddRoot ? Vendor: Model: Rev: Type: Direct-Access ANSI SCSI revision: 02 Attached scsi disk sdb at scsi2, channel 0, id 0, lun 0 Attached scsi generic sg1 at scsi2, channel 0, id 0, lun 0, type 0 -HddRoot- kjournald starting. Commit interval 5 seconds EXT3 FS on sda1, internal journal EXT3-fs: mounted filesystem with ordered data mode. XFS mounting filesystem sda2 PRODUCTID=0x00000009 PRODUCTID=0x00000009 KERNEL:2006/6/11 14:33:21 HDD:2006/6/15 10:15:16 -- CopyFromInitrdToHdd -- cp: /etc/init.d/develop.sh: No such file or directory checking local disk.... fsck 1.27 (8-Mar-2002) e2fsck 1.27 (8-Mar-2002) /dev/ls_disk1_1: clean, 16/50200 files, 74657/200781 blocks done XFS mounting filesystem sda2 VFS: Mounted root (xfs filesystem). Trying to move old root to /initrd ... failed Unmounting old root Trying to free ramdisk memory ... okay Freeing init memory: 112K /sbin/initKernel panic - not syncing: Attempted to kill init! : error while lo ading shared lib<0>Rebooting in 5 seconds..raries: libbuffalo_bin.so: cannot open shared object file: No such file or directory >miconCntl_Reboot >miconCntl_ShutdownWait === BUFFALO LS-GL U-Boot. === ** LOADER ** ** BUFFALO BOARD: BUFFALO_BOARD_LS_GL LEカーネルパニックして、再起動が始まった。 その後、
: *** not found /mnt/etc/rootfs_ok file in rootfs. *** chars= 8 ** over max retry. use initrd mode. ** : : BUFFALO INC. LinkStation series LS-GL(IESADA) LS-GL-EM67A login:相変わらず EM モード。落ち着け!。
linkstation_release がオールゼロになっていたり、 あるはずのファイルがなかったり。 なんかおかしいんちゃう?
シリアルコンソールがあるからこうやって対処できているけど、 シリアルコンソールがなかったらお手上げだろうな。
まずは、fsck をかける。
root@UDE:~# fsck -f -y /dev/sdb1 fsck 1.27 (8-Mar-2002) e2fsck 1.27 (8-Mar-2002) /dev/sdb1 is mounted. WARNING!!! Running e2fsck on a mounted filesystem may cause SEVERE filesystem damage. Do you really want to continue (y/n)? no check aborted. root@UDE:~# umount /dev/sdb1 umount: /dev/sdb1: not mounted root@UDE:~# fsck -f -y /dev/sdb1 fsck 1.27 (8-Mar-2002) e2fsck 1.27 (8-Mar-2002) /dev/sdb1 is mounted. WARNING!!! Running e2fsck on a mounted filesystem may cause SEVERE filesystem damage. Do you really want to continue (y/n)? no check aborted. root@UDE:~# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda2 484672 169228 315444 35% / /dev/ram1 15360 80 15280 1% /mnt/ram /dev/ls_disk1_1 190387 64205 116353 36% /boot /dev/ls_disk1_6 19242992 14656 19228336 0% /mnt/disk1 /dev/ls_usbdisk2_1 194443 68319 116085 37% /mnt/usbdisk2 root@UDE:~# umount /mnt/usbdisk2 root@UDE:~# !fsck fsck -f -y /dev/sdb1 fsck 1.27 (8-Mar-2002) e2fsck 1.27 (8-Mar-2002) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sdb1: 16/50200 files (18.8% non-contiguous), 74657/200781 blocks root@UDE:~# xfs_check /dev/sdb2 root@UDE:~# xfs_check /dev/sdb6 root@UDE:~#libbuffalo_bin.so をコピーする。
root@UDE:~# find / -name libbuffalo_bin.so -print /usr/local/lib/libbuffalo_bin.so root@UDE:~# mkdir /tmp/root root@UDE:~# mount /dev/sdb2 /tmp/root XFS mounting filesystem sdb2 root@UDE:~# ls -l /tmp/root/usr/local/lib/libbuffalo_bin.* -rwxr-xr-x 1 root root 28644 Jun 11 14:49 /tmp/root/usr/local/lib/libbuffalo_bin.a -rwxr-xr-x 1 root root 22601 Jun 11 14:49 /tmp/root/usr/local/lib/libbuffalo_bin.so root@UDE:~# (cd /usr/local/lib; tar cf - libbuffalo* )|(cd /tmp/root/usr/local/lib ; tar xvf -) libbuffalo_bin.so libbuffalo_bin.a続いて、前回の操作をもう一回。
root@UDE:~# cd /tmp/root/etc/ root@UDE:/tmp/root/etc# date > rootfs_ok root@UDE:/tmp/root/etc# > rootfs_bootingrootfs_booting も空にしておいた。
/sbin/initKernel panic - not syncing: Attempted to kill init! : error while lo ading shared lib<0>Rebooting in 5 seconds..raries: libbuffalo_bin.so: cannot open shared object file: No such file or directoryでブートせず。
実体があるのに libbuffalo_bin.so: cannot open とは?
比べてみる
root@UDE:~# cmp /etc/ld.so.cache /tmp/root/etc/ld.so.cache /etc/ld.so.cache /tmp/root/etc/ld.so.cache differ: char 1, line 1 root@UDE:~# od -xc /tmp/root/etc/ld.so.cache 0000000 0000 0000 0000 0000 0000 0000 0000 0000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * 0021140 root@UDE:~#あかんわ。/etc つぶれてる。
root@UDE:~# cd / root@UDE:/# tar cf - etc |(cd /tmp/root; tar xvf -) etc etc/profile.d etc/profile.d/bashopts.sh etc/skel etc/skel/.bash_logout : root@UDE:/# diff -rc /etc /tmp/root/etc Only in /tmp/root/etc: rootfs_booting root@UDE:/# rm /tmp/root/etc/rootfs_booting root@UDE:/# diff -rc /etc /tmp/root/etc root@UDE:/#これで立ち上がるだろう。
: BUFFALO INC. LinkStation series LS-GL(IESADA) UDE login: root Password: root@UDE:~# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda2 493212 173512 319700 35% / /dev/ram1 15360 68 15292 0% /mnt/ram /dev/ls_disk1_1 194443 68319 116085 37% /boot /dev/ls_disk1_6 155377036 14960 155362076 0% /mnt/disk1 root@UDE:~#よ〜し。
でも、なんでつぶれたんかなぁ。
xfs の問題?
私のちょんぼ?
← LS-GL:/boot は ext3 |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ SEA-FSIJ Monthly Talk 2006/Aug |