From 0e6bd9d12ca52650892ffa1b33ed2267c98a72d9 Mon Sep 17 00:00:00 2001 From: Thomas Bächler Date: Sun, 7 Jun 2009 00:25:20 +0200 Subject: Don't only check for block devices, but also for symbolic links. If we have a symlink, we don't check further if it points to a block device, partially due to klibc's readlink being broken. --- init | 2 +- init_functions | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/init b/init index ce9dcda..0a6aa3f 100644 --- a/init +++ b/init @@ -104,7 +104,7 @@ if [ -z "${nfsroot}" -a "${root}" != "/dev/nfs" ]; then /bin/mknod /dev/root b ${BLOCKDEVICE} >/dev/null export root="/dev/root" fi - if [ ! -b "${root}" ]; then + if [ ! -b "${root}" -a ! -L "${root}" ]; then err "Unable to detect or create root device '${root}'" echo "You are being dropped to a recovery shell" echo " Type 'reboot' to reboot" diff --git a/init_functions b/init_functions index cdc7a9f..0e501ca 100644 --- a/init_functions +++ b/init_functions @@ -15,9 +15,9 @@ poll_device() { seconds=5 fi echo "Waiting ${seconds} seconds for device ${device} ..." - while [ ! -b "${device}" -a ${seconds} -gt 0 ]; do + while [ ! -b "${device}" -a ! -L "${device}" -a ${seconds} -gt 0 ]; do sleep 1 seconds=$((${seconds}-1)) done - [ -b "${device}" ] + [ -b "${device}" -o -L "${device}" ] } -- cgit v1.2.3-24-g4f1b