From: Samuel Ortiz Date: Wed, 8 Oct 2008 14:34:50 +0000 (+0000) Subject: initrdscripts: init can now launch the installation script X-Git-Tag: 2011-1~8066 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=62ece10eb171a341bba097a53fac1bb63a5ee4e4;p=openembedded-core.git 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 --- 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