summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Bächler <thomas@archlinux.org>2009-06-07 00:25:20 +0200
committerThomas Bächler <thomas@archlinux.org>2009-06-07 00:25:20 +0200
commit0e6bd9d12ca52650892ffa1b33ed2267c98a72d9 (patch)
tree9ca1796b894d3232c96829dfacc4fa9b76cbc5c5
parent1a26b2e49863cb3f010bc7b798fdbe3b8511ddfa (diff)
downloadmkinitcpio-0e6bd9d12ca52650892ffa1b33ed2267c98a72d9.tar.gz
mkinitcpio-0e6bd9d12ca52650892ffa1b33ed2267c98a72d9.tar.xz
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.
-rw-r--r--init2
-rw-r--r--init_functions4
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}" ]
}