永かった。。。

Debian LS410D

LS410D でも initrd を変える方法を見つけたので、 ハックキットに向けて、 余計なこと(initrd 内から / へファイルをコピー)をしない initrd を作る。

スクリプトの修正

スクリプトを修正する。
root@qube:/srv/tftp/ls400-111# vi remakeinitrd.sh
	:
	:
root@qube:/srv/tftp/ls400-111# cat remakeinitrd.sh
set -x

dd if=initrd.buffalo.orig of=/tmp/initrd.gz bs=64 skip=1
gunzip /tmp/initrd.gz

rm -fr root
mkdir root
cd root

cat /tmp/initrd | cpio -id
rm /tmp/initrd

cat > init <<EOF
#!/bin/sh

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

echo "---- in hackkit linuxrc ---"
mkdir /rootfs
mount /dev/sda2 /rootfs
exec /sbin/switch_root /rootfs /sbin/init
EOF
chmod +x init

find . | cpio -o -H newc | gzip > /tmp/initrd.gz
cd ..

mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/initrd.gz initrd.buffalo
rm -f /tmp/initrd.gz

rm -f ../initrd.buffalo
ln initrd.buffalo ..
root@qube:/srv/tftp/ls400-111#

スクリプトの実行

root@qube:/srv/tftp/ls400-111# sh remakeinitrd.sh
+ dd if=initrd.buffalo.orig of=/tmp/initrd.gz bs=64 skip=1
185731+1 records in
185731+1 records out
11886820 bytes (12 MB) copied, 9.51076 s, 1.2 MB/s
+ gunzip /tmp/initrd.gz
+ rm -fr root
+ mkdir root
+ cd root
+ cat /tmp/initrd
+ cpio -id
52829 blocks
+ rm /tmp/initrd
+ cat
+ chmod +x init
+ find .
+ cpio -o -H newc
+ gzip
52803 blocks
+ cd ..
+ 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 Oct 20 17:00:58 2013
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11921438 Bytes = 11642.03 kB = 11.37 MB
Load Address: 0x00000000
Entry Point:  0x00000000
+ rm -f /tmp/initrd.gz
+ rm -f ../initrd.buffalo
+ ln initrd.buffalo ..
root@qube:/srv/tftp/ls400-111#
一応、init をみてみる。
root@qube:/srv/tftp/ls400-111# cat root/init
#!/bin/sh

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

echo "---- in hackkit linuxrc ---"
mkdir /rootfs
mount /dev/sda2 /rootfs
exec /sbin/switch_root /rootfs /sbin/init
root@qube:/srv/tftp/ls400-111#
できている。

ハックキットを tftp Boot

ハックキットの HDD を接続して、LS410D の電源ON
E06
FUNC ボタンを押す
白点滅、、、
白点滅、、、

E06

あれ?
あかんの?

試行錯誤

100回ぐらい
スクリプトを修正して
initrd.buffalo を作り直し
tftp Boot
して試行錯誤(藁

最終的には、mount -a が必要なことがわかった。

root@qube:/srv/tftp/ls400-111# cat root/init
#!/bin/sh

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

echo "---- in hackkit linuxrc ---"

mount -a

mkdir /rootfs
mount /dev/sda2 /rootfs
exec /sbin/switch_root /rootfs /sbin/init
root@qube:/srv/tftp/ls400-111#
-a じゃなくて、 特定のファイルシステムだけでも良いのかもしれないけれど。。。
root@qube:/srv/tftp/ls400-111# cat remakeinitrd.sh
set -x

rm -f /tmp/initrd
dd if=initrd.buffalo.orig of=/tmp/initrd.gz bs=64 skip=1
gunzip /tmp/initrd.gz

rm -fr root
mkdir root
cd root

cat /tmp/initrd | cpio -id
rm /tmp/initrd

cat > init <<EOF
#!/bin/sh

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin

echo "---- in hackkit linuxrc ---"

mount -a

mkdir /rootfs
mount /dev/sda2 /rootfs
exec /sbin/switch_root /rootfs /sbin/init
EOF
chmod +x init

find . | cpio -o -H newc | gzip > /tmp/initrd.gz
cd ..

mkimage -A ARM -O Linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /tmp/initrd.gz initrd.buffalo
rm -f /tmp/initrd.gz

rm -f ../initrd.buffalo
ln initrd.buffalo ..
root@qube:/srv/tftp/ls400-111#

Debian 起動!!

というわけで、なんとか。。。
root@qube:/srv/tftp/ls400-111# telnet ls410d
Trying 192.168.2.57...
Connected to ls410d.yamasita.jp.
Escape character is '^]'.

Linux 3.3.4 (qube.yamasita.jp) (pts/0)

hackkit login: guest
Password:
Linux hackkit 3.3.4 #1 Thu Jul 4 22:16:52 JST 2013 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
guest@hackkit:~$
永かった。。。

LS410D

楽天市場
Amazon


一筋の光!
ハックの記録
LinkStation/玄箱 をハックしよう

ハックキットの修正、確認

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

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