Bug#809740: initramfs-tools: Completely ignores rootdelay
Hello Ben and Christoph,
Ben Hutchings [2016-01-29 13:50 +0000]:
> # systemd maintainers do not want to handle ROOTDELAY
For the record, this isn't just a question of *where* to put a "sleep
$ROOTDELAY" -- my point is, the previous sleep was entirely
non-sensical, and moving it around would still be wrong:
- Sleeping some extra seconds *before* the "wait for root fs" loop in
local_device_setup() will either be a no-op (if $ROOTDELAY is
shorter than the actual time that it takes for the root device to
appear), or it's unnecessary waiting (if $ROOTDELAY is longer than
necessary). This would have been the case in udev's i-t script, as
that runs before "local" (IIRC the sleep used to be in init-top/).
- Sleeping some extra seconds *after* the "wait for root fs" loop
would be slightly less pointless, as that actually could make a
difference (like waiting for more RAID mirror members to join
before you boot the system). Still wrong, but at least not a no-op.
But if booting a system without it fails, as "I always get a
degraded array activated" just means that mdadm's initramfs-tools
hook does not do a thorough enough job to assemble the root
/dev/md?, or rather, does not wait until enough members are online.
This should be done properly for every system with a dynamic
waiting loop, we shouldn't expect users to figure out an
appropriate $ROOTDELAY by themselves. Static sleeps are never the
right answer.
So please don't put this into initramfs-tools either -- let's find out
what really goes wrong here and fix it properly?
Thanks,
Martin
--
Martin Pitt | http://www.piware.de
Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)
Reply to: