X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=debian%2Flive-initramfs.init;h=ac7cd8e182aeeba5bb0087aa88422e546998f65e;hb=9818932dff9f5334fb6b709f1b5168a43e6e6843;hp=294355d24dce990c074edf208b3ba5c16170886e;hpb=cede9a21cf3093b441026095eaec3d67f8a3dc7f;p=live-boot-grml.git diff --git a/debian/live-initramfs.init b/debian/live-initramfs.init index 294355d..ac7cd8e 100644 --- a/debian/live-initramfs.init +++ b/debian/live-initramfs.init @@ -3,10 +3,11 @@ ### BEGIN INIT INFO # Provides: live-initramfs # Required-Start: $syslog -# Required-Stop: $syslog +# Required-Stop: # Should-Start: $local_fs -# Should-Stop: $local_fs -# Default-Start: 1 2 3 4 5 +# Should-Stop: halt reboot +# X-Stop-After: umountroot +# Default-Start: # Default-Stop: 0 6 # Short-Description: live-initramfs init script # Description: Resyncs snapshots, evantually caches files in order to @@ -115,13 +116,28 @@ do_stop () return 0 fi + # Don't prompt to eject the SD card on Babbage board, where we reuse it + # as a quasi-boot-floppy. Technically this uses a bit of ubiquity + # (archdetect), but since this is mostly only relevant for + # installations, who cares ... + if type archdetect >/dev/null 2>&1 + then + subarch="$(archdetect)" + + case $subarch in + arm*/imx51) + return 0 + ;; + esac + fi + prompt=1 if grep -qs noprompt /proc/cmdline then prompt= fi - for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty) + for path in $(which halt) $(which reboot) /etc/rc?.d /etc/default $(which stty) /bin/plymouth /sbin/usplash_write do cache_path "${path}" done @@ -137,11 +153,6 @@ do_stop () if [ -z ${QUICKREBOOT} ] then - # in order to deal with the aufs unmount problem, we do a sync here. - sync - sleep 1 - sync - # TODO: i18n BOOT_DEVICE="$(get_boot_device)" @@ -165,27 +176,33 @@ do_stop () [ "$prompt" ] || return 0 - stty sane < /dev/console + if [ -x /bin/plymouth ] && plymouth --ping + then + plymouth message --text="${MESSAGE} and press ENTER to continue:" + plymouth watch-keystroke > /dev/null + else + stty sane < /dev/console - printf "\n\n${MESSAGE} and press ENTER to continue:" > /dev/console + printf "\n\n${MESSAGE} and press ENTER to continue:" > /dev/console - if [ -x /sbin/usplash_write ] - then - /sbin/usplash_write "TIMEOUT 86400" - /sbin/usplash_write "TEXT-URGENT ${MESSAGE}" - /sbin/usplash_write "TEXT-URGENT and press ENTER to continue" - fi + if [ -x /sbin/usplash_write ] + then + /sbin/usplash_write "TIMEOUT 86400" + /sbin/usplash_write "TEXT-URGENT ${MESSAGE}" + /sbin/usplash_write "TEXT-URGENT and press ENTER to continue" + fi - read x < /dev/console + read x < /dev/console + fi fi } case "${1}" in - start|restart|reload|force-reload|status) + restart|reload|force-reload|status) [ "${VERBOSE}" != no ] && log_end_msg 0 ;; - stop) + start|stop) log_begin_msg "${NAME} is resyncing snapshots and caching reboot files..." do_stop