From 62ece10eb171a341bba097a53fac1bb63a5ee4e4 Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Wed, 8 Oct 2008 14:34:50 +0000 Subject: 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 --- meta/packages/initrdscripts/files/init-live.sh | 41 +++++++++++++++++++------- 1 file 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 -- cgit v1.2.3-54-g00ecf