日々の生活を好き勝手につづったブログ(My blog is written by inoshita.jp)
玄箱をDebian 6.0(squeeze)にする際、お世話になったサイトが www.revulo.com で、どうして対応が必要なのか知りたかったこともあり、セットアッププログラムを解析
#!/bin/sh
BOOT_SELECTOR=kuro-bootsel2.20080419.tar.gz
BOOT_SELECTOR_PATCH=kuro-bootsel2-debian.tgz
DEBIAN_IMAGE=debian-lenny-kuroBOX-20090317.tgz
KERNEL_LOADER=loader.o
KERNEL_IMAGE=kernelimage-2.6.25.1-kuroHG.tgz
KERNEL_MODULE=modules-2.6.25.1-kuroHG.tgz
TMP=`pwd`
HDA1=/ # MontaVista Linux パーティション1
HDA3=/mnt # Debian lenny パーティション3
tar xfz ${BOOT_SELECTOR}
tar xfz ${BOOT_SELECTOR_PATCH} # kuro_boot.conf のみが入っていて前の${BOOT_SELECTOR}内の kuro_boot.conf を上書き
cd kuro-bootsel2
sh install.sh # 次項に記載
cd ..
rm -rf kuro-bootsel2
cd ${HDA1}/boot
cp -p ${TMP}/${KERNEL_LOADER} . # ローダーモジュール(loader.o) を hda1:/boot/ へ
tar xfz ${TMP}/${KERNEL_IMAGE} # カーネル(vmlinux.bin, .config, System.map, uImage) を hda1:/boot/ へ
cd ${HDA3}
tar xfzp ${TMP}/${DEBIAN_IMAGE} # hda3 にシステムを展開
cd ${HDA3}/lib/modules
tar xfz ${TMP}/${KERNEL_MODULE} # カーネルモジュール(2.6.25.1-kuroboxHG/)を hda3:/lib/modules へ
「玄箱用なんちゃってブートセレクタ2」(説明書:readme.euc-jp.txt)のセットアップ
#! /bin/sh
mkdir -p /boot/tools
cp kuro_swread kuro_morse /boot/tools/
cp kuro_bootsel2.sh /etc/init.d/
chmod 755 /etc/init.d/kuro_bootsel2.sh
if [ -d /etc/rcS.d ]; then \
(cd /etc/rcS.d; ln -s ../init.d/kuro_bootsel2.sh S15kuro_bootsel2.sh)
fi
if [ -d /etc/rc.d/rcS.d ]; then
(cd /etc/rc.d/rcS.d; ln -s ../init.d/kuro_bootsel2.sh S15kuro_bootsel2.sh)
fi
cp kuro_boot.conf /etc/
exit 0
変更された kuro_boot.conf は、デフォルトを2にしてパラメータ2は
# Menu entry No.2
#
menu2="Debian"
loader2="-f /boot/loader.o"
kernel2=/boot/vmlinux.bin
option2='cmdline="root=/dev/hda3"'
「謎は全て解けた!」大げさだが理解したので快感である
先に理解していれば、etch から squeeze にするのに、
①hda1(etch)をhda3へコピー(hda3用の修正も必要)
②kuro_load_param(etch時利用されていた物)を修正してhda3から起動するよう変更(「玄箱用なんちゃってブートセレクタ2」を導入しても良い)
③hda3を/として起動後、etch>lenny>squeeze へとアップグレードする
という手順もあったのかと思う
ただしhda3が確保できないだろうからディスクの交換が必要になる
/etc/init.d/kuro_bootsel2.sh
/etc/kuro_boot.conf
etch時のカーネル2.6の再ロードプロセスで利用していたのは以下のファイル
/etc/init.d/kuro_load
/etc/inid.d/kuro_load_wd
/etc/kuro_load_param