diff options
author | Samuel Ortiz <sameo@openedhand.com> | 2008-10-08 14:34:50 +0000 |
---|---|---|
committer | Samuel Ortiz <sameo@openedhand.com> | 2008-10-08 14:34:50 +0000 |
commit | 62ece10eb171a341bba097a53fac1bb63a5ee4e4 (patch) | |
tree | 1e93d526fe497c6863e26d05389d256ead8dd3a9 | |
parent | 460d93416d2f0dba887ffe83d781d7bf05da0017 (diff) | |
download | openembedded-core-62ece10eb171a341bba097a53fac1bb63a5ee4e4.tar.gz openembedded-core-62ece10eb171a341bba097a53fac1bb63a5ee4e4.tar.bz2 openembedded-core-62ece10eb171a341bba097a53fac1bb63a5ee4e4.zip |
initrdscripts: init can now launch the installation script
Depending on the boot label ("boot" or "install"), init will either
chroot into the rootfs image (live boot path), or launch the
installation script (installation path).
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5457 311d38ba-8fff-0310-9ca6-ca027cbcb966
-rw-r--r-- | meta/packages/initrdscripts/files/init-live.sh | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/meta/packages/initrdscripts/files/init-live.sh b/meta/packages/initrdscripts/files/init-live.sh index e081d44dd0..96a1a9488f 100644 --- a/meta/packages/initrdscripts/files/init-live.sh +++ b/meta/packages/initrdscripts/files/init-live.sh @@ -7,7 +7,9 @@ UMOUNT="/bin/umount" early_setup() { mkdir /proc + mkdir /sys mount -t proc proc /proc + mount -t sysfs sysfs /sys udevd --daemon } @@ -22,6 +24,12 @@ read_args() { ROOT_FSTYPE=$optarg ;; rootdelay=*) rootdelay=$optarg ;; + LABEL=*) + label=$optarg ;; + video=*) + video_mode=$optarg ;; + vga=*) + vga_mode=$optarg ;; esac done } @@ -38,14 +46,13 @@ fatal() { exec sh } -echo "Starting initramfs boot..." early_setup [ -z "$CONSOLE" ] && CONSOLE="/dev/console" read_args -echo "Waiting for Live image to show up..." +echo "Waiting for removable media..." while true do for i in `ls /media 2>/dev/null`; do @@ -59,12 +66,26 @@ do sleep 1 done -mkdir $ROOT_MOUNT -mknod /dev/loop0 b 7 0 +case $label in + boot) + mkdir $ROOT_MOUNT + mknod /dev/loop0 b 7 0 + + if ! $MOUNT -o rw,loop,noatime,nodiratime /media/$i/$ROOT_IMAGE $ROOT_MOUNT ; then + fatal "Couldnt mount rootfs image" + else + boot_live_root + fi + ;; + install) + if [ -f /media/$i/$ROOT_IMAGE ] ; then + ./install.sh $i $ROOT_IMAGE $video_mode $vga + else + fatal "Couldnt find install script" + fi + + # If we're getting here, we failed... + fatal "Installation image failed" + ;; +esac -if ! $MOUNT -o rw,loop,noatime,nodiratime /media/$i/$ROOT_IMAGE $ROOT_MOUNT -then - fatal "Couldnt mount rootfs image" -else - boot_live_root -fi |