From 6313137a1e3f0c7bd8ed5db1c41a7f7370bf482a Mon Sep 17 00:00:00 2001 From: Aaron Griffin Date: Wed, 7 Mar 2007 05:42:56 +0000 Subject: Changes / suggestions from Jan Peter den Heijer * Check for root device, drop down to recovery prompt and allow for reboot * Handle rootdelay in init (before udev is killed), to properly populate devices git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@199 880c04e9-e011-0410-abf7-b926e227c9cd --- init | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'init') diff --git a/init b/init index 3896e68..97b7b88 100644 --- a/init +++ b/init @@ -86,6 +86,13 @@ if [ -e "/hooks" ]; then done fi +if [ "${rootdelay}" != "0" ]; then + msg -n "Waiting for devices to settle..." + /bin/sleep "${rootdelay}" + export rootdelay=0 + msg "done." +fi + if [ "${break}" = "y" ]; then echo ":: Break requested, type 'exit' to resume operation" echo " NOTE: klibc contains no 'ls' binary, used 'echo *' instead" @@ -99,14 +106,19 @@ if [ "x${udevpid}" != "x" ]; then /bin/sleep 0.01 fi -msg ":: Initramfs Completed - control passing to kinit" -if [ -f "/message" ]; then - msg "$(cat /message)" -fi - -if [ "$rootdelay" != "0" ]; then - kinit_params="${kinit_params} rootdelay=${rootdelay}" +if [ ! -e "${root}" ]; then + err "Unable to create/detect root device '${root}'" + msg "Dropping to a recovery shell... type 'exit' to reboot" + PS1="ramfs$ " /bin/sh -i + msg "Rebooting..." + /bin/reboot +else + msg ":: Initramfs Completed - control passing to kinit" + if [ -f "/message" ]; then + msg "$(cat /message)" + fi fi echo "/sbin/modprobe" > /proc/sys/kernel/modprobe + exec /bin/kinit -- "root=${root}" ${kinit_params} "${runlevel}" > /dev/null 2>&1 -- cgit v1.2.3-24-g4f1b