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

LS410D

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

マルチユーザの状態で無理やり switch_root を実行したら、 EM でしか起動しなくなったので、 次は、/etc/init.d/rcS に組み込んでみる

/mnt/disk1 に debian の / を置く

先日 と同じ。詳細略

ハックキットの HDD を USB で接続

ハックキットの HDD をマウント

ハックキットの HDD の中身を /mnt/disk1 にコピー

ハックキットの HDD をアンマウント

fstab の修正

何がマウントされているかを確認

rcS が実行されるとき、何がマウントされているかを確認する。

rcS の修正

標準ファームが HDD から起動して最初に実行される rcS を修正する。
まずは、何がマウントされているかを確認する。
[root@LS410D06E ~]# cd /mnt/disk1/etc/init.d
[root@LS410D06E init.d]# mv rcS{,.orig}
[root@LS410D06E init.d]# vi rcS
	:
	:
[root@LS410D06E init.d]# diff -u rcS.orig rcS
--- rcS.orig
+++ rcS
@@ -3,6 +3,9 @@
 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
 export PATH

+df > /df
+mount >> /df
+
 DEBUG=0
 . /usr/local/lib/libmsg
 . /usr/local/lib/libsys
[root@LS410D06E init.d]#
再起動して /df を見れば、何がマウントされているかわかる。

再起動

何がマウントされている?

[root@LS410D06E ~]# cat /df
Filesystem           1K-blocks      Used Available Use% Mounted on
udev                     10240         0     10240   0% /dev
/dev/sda2              4920636    855960   3814720  18% /
rootfs on / type rootfs (rw)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=62267,mode=755)
/dev/sda2 on / type ext3 (rw,relatime,errors=continue,barrier=1,data=writeback)
[root@LS410D06E ~]#

rcS の修正

アンマウントできそうもないので、 switch_root を実行する
[root@LS410D06E ~]# cd /etc/init.d/
[root@LS410D06E init.d]# vi rcS
	:
	:
[root@LS410D06E init.d]# diff -u rcS.orig rcS
--- 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
+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]#
長い長い白点滅

長すぎる

ブッチン

HDD の中を見る

LS-QL に USB で接続

マウント

root@qube:~# mkdir /tmp/root
mkdir: cannot create directory `/tmp/root': File exists
root@qube:~# mount /dev/sdd2 /tmp/root
root@qube:~#

中身は?

root@qube:~# ls /tmp/root
root@qube:~#
空っぽ

mnt は

root@qube:~# mkdir /tmp/mnt
mkdir: cannot create directory `/tmp/mnt': File exists
root@qube:~# mount /dev/sdd6 /tmp/mnt
mount: wrong fs type, bad option, bad superblock on /dev/sdd6,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

root@qube:~#
壊れてる。。。。

/sbin/switch_root って何者??



LS410D

楽天市場
Amazon


HDD はどうなった?
ハックの記録
LinkStation/玄箱 をハックしよう

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

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

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