一番調べたいのは、ブートしない条件。
従来機種と同様に
Debian をインストール
してみたが、起動しなかった。
猫のクマさんも LS-410D initrdいじると立ち上がらない とのこと。
何を変えたらブートしなくなるのかを知りたい。
[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]#
[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
問題なく起動してきた。
タイムスタンプは関係ないようだ
[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再起動してきた。
まず、現状
[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]#
[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]#
[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 の作り方には依らないようだ。
次は、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 ではアーカイブできないので、 ここからはセルフではできず。
とりあえず、今日はここまで。
|
← 実験用 HDD の作成(2) |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ tftp Boot で標準ファームを起動 |
Copyright (C) 2003-2013 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市