From 31b2d189abad602f52b00c31c2a18fe303ff6d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Wed, 22 Apr 2009 19:40:41 +0000 Subject: [PATCH] Change the Bootscript and Bootscript.cd to use the new isvolume -readonly-partition feature and offer the user to boot into the Installer or into the Desktop (Live-CD mode). Thanks to Vincent Duvert who offered a method that worked around some interference from mysterious debug output... The launching of the servers has been refactored, since that needs to be done anyways before an alert can be shown. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30332 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- data/system/boot/Bootscript | 22 +++++++++++++++++----- data/system/boot/Bootscript.cd | 27 +-------------------------- 2 files changed, 18 insertions(+), 31 deletions(-) diff --git a/data/system/boot/Bootscript b/data/system/boot/Bootscript index 94d717c3a5..a6f0cefa21 100644 --- a/data/system/boot/Bootscript +++ b/data/system/boot/Bootscript @@ -70,14 +70,16 @@ export SAFEMODE=`/bin/safemode` launchscript $SCRIPTS/SetupEnvironment # If the boot volume is a CD we use another script -iw=`/bin/isvolume -readonly /boot` +iw=`/bin/isvolume -readonly-partition /boot` if [ "$iw" = "yes" ]; then - launchscript $SCRIPTS/Bootscript.cd - exit 0 # and return + # block the CD tray (avoid accidental ejection) + # This option stays 'on' even if we continue booting to the desktop. + /bin/eject -b /boot +else + # Sets timezone etc. + runprog system/bin/clockconfig fi -# Sets timezone etc. -runprog system/bin/clockconfig # Launch servers @@ -102,6 +104,16 @@ if [ "$SAFEMODE" != "yes" ]; then waitfor _input_server_event_loop_ # wait for input devices fi +# Now ask the user if he wants to run the Installer or continue to the Desktop. +if [ "$iw" = "yes" ]; then + /bin/alert "Do you wish to run the Installer or continue booting to the Desktop?" "Installer" "Desktop" + if [ $? -eq 0 ]; then + launchscript $SCRIPTS/Bootscript.cd + exit 0 # and return + fi +fi + + # Launch Terminal or consoled depending on $SAFEMODE if [ "$SAFEMODE" != "yes" ]; then if [ -e /etc/users ]; then diff --git a/data/system/boot/Bootscript.cd b/data/system/boot/Bootscript.cd index f6d61dbbfe..d6703be576 100644 --- a/data/system/boot/Bootscript.cd +++ b/data/system/boot/Bootscript.cd @@ -44,31 +44,6 @@ runprog() { ## Main script starts here ## -# block the CD tray (avoid accidental ejection) -/bin/eject -b /boot - -# Launch servers - -# We must wait for the app_server and registrar to be ready -launch $SERVERS/registrar _roster_thread_ # launch registrar - -#launch $SERVERS/debug_server # launch debug_server - -# Init Network -if [ "$SAFEMODE" != "yes" ]; then - launch $SERVERS/net_server # launch net_server -fi - -if [ "$SAFEMODE" != "yes" ]; then - launch $SERVERS/app_server picasso # launch app_server -else - launch $SERVERS/fake_app_server picasso -fi - -if [ "$SAFEMODE" != "yes" ]; then - launch $SERVERS/syslog_daemon - waitfor _input_server_event_loop_ # wait for input devices -fi # Launch Terminal or consoled depending on $SAFEMODE if [ "$SAFEMODE" != "yes" ]; then @@ -84,7 +59,7 @@ else fi # sync disks -sync +/bin/sync # prepare for reboot # (reboot quickly in 10 seconds)