別パーティションに Debian の / を置く(3)

Debian LS410D

LinkStation で Debian を動かすために、これまで initrd.buffalo 内の initrd を修正していたのだが、 initrd を変えるとブートしなくなった。
いろいろ試行錯誤したが、回避策を見つけられなくて initrd.buffalo を変更するのは諦める。
次の手として、別パーティションに Debian の / を 置く方法をとってみる。

別パーティションの / を本当の / にするために、 標準ファームの /sbin/switch_root を使ってみたのだが、 なんだか HDD が破壊?されてしまう。

まさか、ここまで到達することを読んでトラップを仕掛けているとしたなら、 バッファローさん、すごい!

とか思っていたら、switch_root は旧 / を消してしまうようだ。
RamRoot ならいざしらず HDD Root を消されたのではたまらない。

まぁ、標準ファームの / が壊されても、 リストアするとか手はある。

それより、sda6 の Debian を起動すること。

試行錯誤する。

exec してみる

PID が 1 でないといけないそうなので、
mkdir /rootfs
mount /dev/sda6 /rootfs
exec /sbin/switch_root /rootfs /sbin/init
としてみたが、結果は同じ

BusyBox の switch_root を使ってみる

switch_root は BusyBox のアプレットにもあるはず。
[root@LS410D06E ~]# /bin/busybox | grep switch_root
        swapon, switch_root, sync, sysctl, syslogd, tail, tee, telnet, telnetd, test, tftp, time, top, touch,
[root@LS410D06E ~]#
あるある。

シンボリックリンクを張る。

[root@LS410D06E ~]# ln -s /bin/busybox /usr/local/sbin/switch_root
[root@LS410D06E ~]#

rcS の修正

/usr/local/sbin/switch_root を使うようにする。
[root@LS410D06E ~]# cd /etc/init.d/
[root@LS410D06E init.d]# mv rcS{,.orig}
[root@LS410D06E init.d]# cp rcS{.orig,}
[root@LS410D06E init.d]# ls -l !*
ls -l rcS{.orig,}
-rwxr-xr-x    1 root     root          3869 Oct  9 22:09 rcS*
-rwxr-xr-x    1 root     root          3869 May 14 05:50 rcS.orig*
[root@LS410D06E init.d]# vi rcS
	:
	:
[root@LS410D06E init.d]# diff -u rcS{.orig,}
--- rcS.orig
+++ rcS
@@ -3,6 +3,10 @@
 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
 export PATH

+mkdir /rootfs
+mount /dev/sda6 /rootfs
+exec /usr/local/sbin/switch_root /rootfs /sbin/init
+
 DEBUG=0
 . /usr/local/lib/libmsg
 . /usr/local/lib/libsys
[root@LS410D06E init.d]#

再起動

[root@LS410D06E init.d]# reboot
[root@LS410D06E init.d]#
白点滅
消灯
白点滅
白点滅!

結局一緒。

switch_root は、どうやったら使えるの?



LS410D

楽天市場
Amazon


別パーティションに Debian の / を置く(2)
ハックの記録
LinkStation/玄箱 をハックしよう

別パーティションに Debian の / を置く(4)

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

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