The rootdelay kernel parameter is specified as a fixed delay before attempting to mount the root filesystem, not a timeout. In the initramfs it is processed by udev's init-top script. This is being used to workaround bug #678696, but as most users will set the shortest value that seems to work, it is fragile. Using the same value as a timeout makes our fix for #678696 fragile too. We shouldn't really use $ROOTDELAY here at all, but as some users may have a good reason for wanting a longer timeout and may depend on the current behaviour, make our current default timeout of 30 seconds a minimum. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> --- scripts/local | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/local b/scripts/local index 54eb674..f6424f0 100644 --- a/scripts/local +++ b/scripts/local @@ -64,8 +64,11 @@ local_device_setup() if [ ! -e "$1" ] || ! $(get_fstype "$1" >/dev/null); then log_begin_msg "Waiting for $2 file system" - # Default delay is 30s (approximately) - slumber=${ROOTDELAY:-30} + # Timeout is max(30, rootdelay) seconds (approximately) + slumber=30 + if [ ${ROOTDELAY:-0} -gt $slumber ]; then + slumber=$ROOTDELAY + fi while true; do sleep 1 -- Ben Hutchings Anthony's Law of Force: Don't force it, get a larger hammer.
Attachment:
signature.asc
Description: This is a digitally signed message part