ブートしない条件

LS410D

実験用 HDD ができたので、もう怖いものなし。

一番調べたいのは、ブートしない条件。
従来機種と同様に Debian をインストール してみたが、起動しなかった。

猫のクマさんも LS-410D initrdいじると立ち上がらない とのこと。

何を変えたらブートしなくなるのかを知りたい。

準備

その前に、、

ssh で ログインできるようにする

標準ファームで起動

HDD を LS400D に戻して起動

ログイン

[root@LS410D06E ~]# cd /boot
[root@LS410D06E boot]# ls -l
total 211156
-rw-r--r--    1 root     root         76904 Sep 15 11:59 conf_save.tgz
-rwxr-xr-x    1 root     root     200399162 Jul  5 00:46 hddrootfs.buffalo.updated.done*
-rwxr-xr-x    1 root     root      11886884 Jul  4 22:18 initrd.buffalo*
-rwxr-xr-x    1 root     root        725924 Jul  4 19:56 u-boot.buffalo*
-rwxr-xr-x    1 root     root       2894416 Jul  4 22:18 uImage.buffalo*
[root@LS410D06E boot]#

タイムスタンプを変えてみる

バックアップを兼ねて iintrd の日付を変えてみる
[root@LS410D06E boot]# mv initrd.buffalo{,.orig}
[root@LS410D06E boot]# cp initrd.buffalo{.orig,}
[root@LS410D06E boot]# ls -l
total 222784
-rw-r--r--    1 root     root         76904 Sep 15 11:59 conf_save.tgz
-rwxr-xr-x    1 root     root     200399162 Jul  5 00:46 hddrootfs.buffalo.updated.done*
-rwxr-xr-x    1 root     root      11886884 Sep 15 12:50 initrd.buffalo*
-rwxr-xr-x    1 root     root      11886884 Jul  4 22:18 initrd.buffalo.orig*
-rwxr-xr-x    1 root     root        725924 Jul  4 19:56 u-boot.buffalo*
-rwxr-xr-x    1 root     root       2894416 Jul  4 22:18 uImage.buffalo*
[root@LS410D06E boot]# reboot

問題なく起動してきた。

タイムスタンプは関係ないようだ

サイズ

initrd のサイズを変えてみる
[root@LS410D06E ~]# cd /boot
[root@LS410D06E boot]# ls -l
total 222784
-rw-r--r--    1 root     root         76881 Sep 15 12:51 conf_save.tgz
-rwxr-xr-x    1 root     root     200399162 Jul  5 00:46 hddrootfs.buffalo.updated.done*
-rwxr-xr-x    1 root     root      11886884 Sep 15 12:50 initrd.buffalo*
-rwxr-xr-x    1 root     root      11886884 Jul  4 22:18 initrd.buffalo.orig*
-rwxr-xr-x    1 root     root        725924 Jul  4 19:56 u-boot.buffalo*
-rwxr-xr-x    1 root     root       2894416 Jul  4 22:18 uImage.buffalo*
[root@LS410D06E boot]# echo >> initrd.buffalo
[root@LS410D06E boot]# ls -l
total 222784
-rw-r--r--    1 root     root         76881 Sep 15 12:51 conf_save.tgz
-rwxr-xr-x    1 root     root     200399162 Jul  5 00:46 hddrootfs.buffalo.updated.done*
-rwxr-xr-x    1 root     root      11886885 Sep 15 12:54 initrd.buffalo*
-rwxr-xr-x    1 root     root      11886884 Jul  4 22:18 initrd.buffalo.orig*
-rwxr-xr-x    1 root     root        725924 Jul  4 19:56 u-boot.buffalo*
-rwxr-xr-x    1 root     root       2894416 Jul  4 22:18 uImage.buffalo*
[root@LS410D06E boot]# reboot
再起動してきた。
initrd.buffalo のサイズも関係無いようだ。

image の作り直し

中身は変えずに、image を作りなおしてみる

まず、現状

[root@LS410D06E boot]# cp initrd.buffalo{.orig,}
[root@LS410D06E boot]# file initrd.buffalo
initrd.buffalo: u-boot legacy uImage, initramfs, Linux/ARM, RAMDisk Image (gzip), 11886820 bytes, Thu Jul  4 22:18:34 2013, Load Address: 0x00000000, Entry Point: 0x00000000, Header CRC: 0x726A9565, Data CRC: 0x29A22009
[root@LS410D06E boot]#
hackkit の mkimage をおいて、
[root@LS410D06E boot]# chmod +x /mnt/disk1/share/hackkit/mkimage
[root@LS410D06E boot]# !$ -l initrd.buffalo
/mnt/disk1/share/hackkit/mkimage -l initrd.buffalo
Image Name:   initramfs
Created:      Thu Jul  4 22:18:34 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11886820 Bytes = 11608.22 kB = 11.34 MB
Load Address: 0x00000000
Entry Point:  0x00000000
[root@LS410D06E boot]#

initrd の展開

[root@LS410D06E boot]# dd if=/boot/initrd.buffalo of=/tmp/initrd.gz bs=64 skip=1
185731+1 records in
185731+1 records out
[root@LS410D06E boot]#

initrd の作成

[root@LS410D06E boot]# /mnt/disk1/share/hackkit/mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/initrd.gz initrd.buffalo
Image Name:   initramfs
Created:      Sun Sep 15 13:36:08 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11886820 Bytes = 11608.22 kB = 11.34 MB
Load Address: 0x00000000
Entry Point:  0x00000000
[root@LS410D06E boot]#
できた。

file の結果を比較する。

[root@LS410D06E boot]# file initrd.buffalo
initrd.buffalo: u-boot legacy uImage, initramfs, Linux/ARM, RAMDisk Image (gzip), 11886820 bytes, Sun Sep 15 13:36:08 2013, Load Address: 0x00000000, Entry Point: 0x00000000, Header CRC: 0x3F47EAA8, Data CRC: 0x29A22009
[root@LS410D06E boot]#
日付はさておき、Header CRC が変わっている。これは日付が変わったからか。

mkimage -l の結果を比較する。

[root@LS410D06E boot]# /mnt/disk1/share/hackkit/mkimage -l initrd.buffalo
Image Name:   initramfs
Created:      Sun Sep 15 13:36:08 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11886820 Bytes = 11608.22 kB = 11.34 MB
Load Address: 0x00000000
Entry Point:  0x00000000
[root@LS410D06E boot]#
こちらは日付だけ。

再起動

[root@LS410D06E boot]# reboot
無事起動してきた。

image の作り方には依らないようだ。

gzip のし直し

そろそろ、2分探索にしたら良かったと思い始めた(笑

次は、initrd を ungzip → gzip してみる。

[root@LS410D06E boot]# cp initrd.buffalo{.orig,}
[root@LS410D06E boot]# dd if=/boot/initrd.buffalo of=/tmp/initrd.gz bs=64 skip=1
185731+1 records in
185731+1 records out
[root@LS410D06E boot]# gunzip /tmp/initrd.gz
[root@LS410D06E boot]# gzip /tmp/initrd
[root@LS410D06E boot]# /mnt/disk1/share/hackkit/mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/initrd.gz initrd.buffalo
Image Name:   initramfs
Created:      Sun Sep 15 13:55:14 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11835384 Bytes = 11557.99 kB = 11.29 MB
Load Address: 0x00000000
Entry Point:  0x00000000
[root@LS410D06E boot]#
再起動

問題なく起動してきた。

次は ar アーカイブのし直しなのだが、 LinkStation の標準ファームの ar ではアーカイブできないので、 ここからはセルフではできず。

とりあえず、今日はここまで。



LS410D

楽天市場
Amazon


実験用 HDD の作成(2)
ハックの記録
LinkStation/玄箱 をハックしよう

tftp Boot で標準ファームを起動

ツイート Tweet to @yasunari_y @yasunari_yをフォロー

Copyright (C) 2003-2013 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市