RFC: Event based initramfs
a short while ago we had a lively discussion about the problems in
initramfs with devices apearing too late (especially USB devices) or
crypto/md/lvm/multipath devices being stacked in a way the initramfs
scripts wouldn't handle.
A simple solution for this problem is to use udev to watch out for new
block devices apearing and creating a trigger file and to watch for the
trigger file in the init script in a simple busy loop. Then whenever new
block devices appear the crypto/md/lvm/multipath scripts are run again
to configure the new devices. Since that can create new block devices
the init script loops until the devices for $ROOT and $resume appear or
a timeout is reached (20s without a new block device appearing).
A patch implementing this simple solution is now available in the BTS
(#678696). If you had to configure rootdelay= in the past or generally
have a non-trivial device setup please do test this patch.
You can also try to install a new system with some insane stackings of
the 4 components, e.g. lvm on raid on lvm on raid, and then try if a
patched initramfs can boot it.
PS: don't forget to include the scripts/local-block/* sniplets from the
bugreport till the respective packages themself provide scripts.