-#!/bin/sh
+#!/bin/bash
# Filename: grml-reboot
# Purpose: reboot grml system
# Authors: grml-team (grml.org)
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
################################################################################
+### BEGIN INIT INFO
+# Provides: grml-reboot
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop:
+### END INIT INFO
export PATH=/sbin:/bin:/usr/bin:/usr/sbin
cd /
# Clean input/output
-exec >/dev/console 2>&1 </dev/console
+CONSOLE=/dev/console
+[ -c "$CONSOLE" ] && exec >"$CONSOLE" 2>&1 <"$CONSOLE"
# default variables
INSTALLED=false
# detect cdrom device
if ! $INSTALLED ; then
- # new live-initramfs layout:
- if [ -d /live/image ] ; then
- CDROM="$(awk '/ \/live\/image /{print $1;exit 0;}' /proc/mounts)"
- MOUNTPATH="/live/image"
- else # old unionfs layout:
- CDROM="$(awk '/ \/cdrom /{print $1;exit 0;}' /proc/mounts)"
- MOUNTPATH="/cdrom"
+ # live-boot layout since December 2012:
+ if [ -d /lib/live/mount/medium ] ; then
+ CDROM="$(awk '/ \/lib\/live\/mount\/medium /{print $1;exit 0;}' /proc/mounts)"
+ MOUNTPATH="/lib/live/mount/medium"
+ # live-boot layout until December 2012:
+ elif [ -d /live/image ] ; then
+ CDROM="$(awk '/ \/live\/image /{print $1;exit 0;}' /proc/mounts)"
+ MOUNTPATH="/live/image"
+ else # old layout:
+ CDROM="$(awk '/ \/cdrom /{print $1;exit 0;}' /proc/mounts)"
+ MOUNTPATH="/cdrom"
fi
# try to remove only removable devices
DEVICE=""
if [ -n "$CDROM" ] ; then
DEVICE="${CDROM##/dev/}"
- DEVICE="${DEVICE%%[0-9]*}"
+ [ -d /sys/block/${DEVICE} ] || DEVICE="${DEVICE%%[0-9]*}"
if [ -n "$DEVICE" ] ; then
# is it a removable device?
[ "$(cat /sys/block/${DEVICE}/removable 2>/dev/null)" = "1" ] && REMOVABLE=true
# is it a usb device?
readlink /sys/block/${DEVICE} 2>/dev/null | grep -q '/usb' && USB_DEVICE=true
- $USB_DEVICE && USB_INFO="$(cat /sys/block/${DEVICE}/device/model 2>/dev/null)"
+ $USB_DEVICE && USB_INFO=" ($(cat /sys/block/${DEVICE}/device/model 2>/dev/null))"
fi
fi
fi
esac
mysleep() {
- for i in $(seq 1 40) ; do
- usleep 75000
+ for i in $(seq 1 30) ; do
+ sleep 0.1
echo -n "$1.${NORMAL}"
done
echo ""
[ -r /etc/noprompt ] && NOPROMPT=true
[ -r /etc/noeject ] && NOPROMPT=true && NOEJECT=true
+VIRT_WHAT=$(/usr/sbin/virt-what 2>/dev/null)
+if [ -n "$VIRT_WHAT" ] ; then
+ log_begin_msg "System seems to be a virtual machine, assuming noprompt as default."
+ NOPROMPT=true
+ log_end_msg 0
+fi
+
# Turn on autoeject of CD-ROMs
if $NOEJECT ; then
for dev in /proc/sys/dev/cdrom*/lock; do [ -f "$dev" ] && echo 0 > "$dev"; done
# Prompt for removal of live system device
if ! $INSTALLED && ! $NOPROMPT ; then
# do not prompt for removal when running in grml2ram mode:
- if ! mount | grep -qe 'on /cdrom' -qe 'on /live/image' ; then
+ if ! mount | grep -qe 'on /cdrom' -qe 'on /live/image' -qe 'on /lib/live/mount/medium' ; then
echo "Live System not mounted, nothing to eject therefore."
else
[ -d "$MOUNTPATH" ] && umount -l "$MOUNTPATH"