summaryrefslogtreecommitdiff
path: root/scripts/local
diff options
context:
space:
mode:
authormaximilian attems <maks@debian.org>2006-03-26 22:37:51 +0200
committermaximilian attems <maks@debian.org>2006-03-26 22:37:51 +0200
commitfac756fddb6da3efbbfe99c3c9b0644346ecc695 (patch)
tree3910cbeb5566ab766aeb50a4eb4ac9d3067cbb46 /scripts/local
parent4b5cc6ce7567a7075802dd8c3e47dd7cf8e84627 (diff)
downloadinitramfs-tools-fac756fddb6da3efbbfe99c3c9b0644346ecc695.tar.gz
initramfs-tools-fac756fddb6da3efbbfe99c3c9b0644346ecc695.zip
Resynch with 0.40ubuntu28
add raid10 module move the loop waiting code to mountroot() leaves only ide-generic from scripts/local-top/udev_helper md pre-requesites the udev one
Diffstat (limited to 'scripts/local')
-rw-r--r--scripts/local26
1 files changed, 25 insertions, 1 deletions
diff --git a/scripts/local b/scripts/local
index 917528a..dd5924d 100644
--- a/scripts/local
+++ b/scripts/local
@@ -7,7 +7,31 @@ mountroot ()
run_scripts /scripts/local-top
[ "$quiet" != "y" ] && log_end_msg
- # Get the root filesystem type
+ # If the root device hasn't shown up yet, give it a little while
+ # to deal with removable devices
+ if [ ! -e "${ROOT}" ]; then
+ log_begin_msg "Waiting for root file system..."
+ if [ -x /sbin/usplash_write ]; then
+ /sbin/usplash_write "TIMEOUT 180" || true
+ fi
+
+ slumber=1800
+ while [ ${slumber} -gt 0 -a ! -e "${ROOT}" ]; do
+ /bin/sleep 0.1
+ slumber=$(( ${slumber} - 1 ))
+ done
+
+ if [ ${slumber} -gt 0 ]; then
+ log_end_msg 0
+ else
+ log_end_msg 1 || true
+ fi
+ if [ -x /sbin/usplash_write ]; then
+ /sbin/usplash_write "TIMEOUT 15" || true
+ fi
+ fi
+
+ # We've given up, but we'll let the user fix matters if they can
while [ ! -e "${ROOT}" ]; do
panic "ALERT! ${ROOT} does not exist. Dropping to a shell!"
done