|
CFやUSBメモリのrootfsに移動する方法 †通常は CAT709, CAT760 の内蔵フラッシュ (/dev/mtdblock2 )で起動していて、 完成目標 †# init 7 とタイプすると全てのデーモンやプロセス、マウントしているデバイスを閉じ、外部ストレージ上に構築した rootfs に移動して再起動する。(Runlevel=7 は未使用なので使用しても大丈夫) 準備 †
作業 †/sbin/pivot_root を置きます。 # chmod +x /sbin/pivot_root
# Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. # Runlevel 7 is switch to USB memory rootfs ← 追加 l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 l7:7:wait:/etc/init.d/rc 7 ← 追加
case "$runlevel" in 0|6|7) ← 7 を追加 startup $i stop ;; *) startup $i start ;;
PATH=/sbin:/bin:/usr/sbin:/usr/bin NEWROOT=/dev/sda1 echo -n "pivot_root ing... " mount $NEWROOT /mnt/ -o ro -t ext3 cd /mnt/ pivot_root . old-root/ exec chroot . sh -c 'mount -t proc proc /proc; exec etc/init.d/rcS ' \ <dev/console >dev/console 2>&1
#!/bin/sh init 2
# mkdir /etc/rc7.d # cp -a /etc/rc6.d/* /etc/rc7.d/
# cd /etc/rc7.d # rm S90reboot # ln -s ../init.d/pivot_root S90pivot_root # ln -s ../init.d/init2 S91init2 新rootfs側の etc (/mnt/etc) の
も上と同じ状態にしておく必要がある 動作方法 †# init 7 とタイプすると全てのデーモンを終了し、/mnt に移動して再起動が掛かる。 再起動後 /old-root に /dev/mtdblock2 がマウントされたままになっているが、 # umount -l /old-root で強制的にアンマウントできる 関連 † |