Initramfs does not wait for md components to settle
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mdadm |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
When booting, initramfs seems to want to autoassemble the MDADM block devices, so it will be possible to boot from MDADM arrays. However, this will very regularly fail, because the devices have not settled yet. This leads to the user being thrown into a recovery shell, even though the array in question does not contain the root partition. When then executing mdadm --assemble ---scan in or after the recovery shell, the array is assembled just fine.
This can be solved by adding 'udevadm settle' as the first command to the degraded_arrays() function in /usr/share/
Ubuntu "Oneiric" 11.10
mdadm - v3.1.4 - 31st August 2010
Linux 3.0.0-15-server #26-Ubuntu SMP Fri Jan 20 19:07:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
I tested Luk's solution 10 times and it worked. Before it failed 50% of the boots. The solution is also described in this forum post: http:// ubuntuforums. org/showpost. php?p=11388915& postcount= 18