summaryrefslogtreecommitdiffstats
path: root/hooks
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2006-05-10 04:56:28 +0200
committerAaron Griffin <aaron@archlinux.org>2006-05-10 04:56:28 +0200
commitb1d62938f81f41bfe84dca26de9edc0f91c11996 (patch)
tree3bfca625382a5c23c138cf8f81bfd3dfec22f326 /hooks
parent1851e5bb06747c54e0cb19371c6f1851eefd851e (diff)
downloadmkinitcpio-b1d62938f81f41bfe84dca26de9edc0f91c11996.tar.gz
mkinitcpio-b1d62938f81f41bfe84dca26de9edc0f91c11996.tar.xz
udev: remove extra copy of ieee1394
init/usb/fs: modify rootdelay handling filesystems: additional error checking, handing for numeric root devices mkinitcpio: remove /tmp modules directory if used git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@90 880c04e9-e011-0410-abf7-b926e227c9cd
Diffstat (limited to 'hooks')
-rw-r--r--hooks/filesystems30
-rw-r--r--hooks/usb8
2 files changed, 33 insertions, 5 deletions
diff --git a/hooks/filesystems b/hooks/filesystems
index 55d6725..e6d980d 100644
--- a/hooks/filesystems
+++ b/hooks/filesystems
@@ -1,13 +1,36 @@
# vim: set ft=sh:
run_hook ()
{
+ isnumeric ()
+ {
+ i=0;
+ while [ $i -lt ${#1} ]; do
+ case ${1:$i:1} in
+ [0-9A-Fa-f]) i=$(($i+1)); continue;;
+ *) return 1;;
+ esac
+ done
+ return 0
+ }
+
msg -n ":: Loading root filesystem module..."
if [ "x${rootfstype}" != "x" ]; then
FSTYPE="${rootfstype}"
else
if [ ! -e "${root}" ]; then
msg "Attempting to create root device '${root}'"
+
+ if [ "x${rootdelay}" != "x" ]; then
+ msg -n "Waiting for devices to settle..."
+ /bin/sleep "${rootdelay}"
+ msg "done."
+ export rootdelay=0
+ fi
+
dev_t=$( /bin/parseblock "${root}" )
+ if isnumeric "${root}"; then
+ export root="/dev/root"
+ fi
if [ "x${dev_t}" != "x" ]; then
/bin/mknod "${root}" b ${dev_t} >/dev/null 2>&1
else
@@ -15,7 +38,12 @@ run_hook ()
echo "ERROR: Failed to parse block device '${root}'"
fi
fi
- eval $( /bin/fstype < "${root}" )
+
+ if [ -e "${root}" ]; then
+ eval $( /bin/fstype < "${root}" )
+ else
+ FSTYPE="unknown"
+ fi
if [ "${FSTYPE}" = "unknown" ]; then
echo "ERROR: root fs cannot be detected. Try using the rootfstype= kernel parameter."
diff --git a/hooks/usb b/hooks/usb
index 1a91fe2..576980a 100644
--- a/hooks/usb
+++ b/hooks/usb
@@ -1,8 +1,8 @@
# vim: set ft=sh:
run_hook ()
{
- #allow 'usbdelay' on the kernel param line
- msg -n "waiting for usb to settle..."
- /bin/sleep ${usbdelay:-5}
- msg "done."
+ #if we have to root delay, default to 5 seconds
+ # this will be handled by kinit and/or the
+ # filesystems hook
+ export rootdelay=${rootdelay:-5}
}