I tried testing my software raid (mdadm) setup by removing one of the disks. When I tried to boot the degraded system, the system hanged displaying a purple screen. If I try booting the system in recovery mode, I get the following error:
If I press “y”, the system boots fine (apart from the degraded raid of course :-)). If I press “N” I’m presented with a busybox rescue shell from the initramfs which should allow me to “fix” this situation. Exiting the shell, resumes the boot service.
Why can I boot the system in recovery without actually doing anything while the normal boot hangs? As it turns out, the normal boot doesn’t hang at all. Due to a bug dating at least to Ubuntu 11.10, the purple splash screen actually hides the prompt asking whether to boot. After a few seconds, the prompts times-out, which is the same as if answered “N”, so it brings up the initramfs rescue shell (which is still hidden). Blindly typing “exit” (and <enter>) will exit the initramfs shell and resume normal boot.
A more permanent workaround is to add “bootdegraded=true” to the default kernel options. This will cause the kernel to always boot regardless of degraded raid arrays. Just make sure you have a proper why to notify you of the health of the raid array once the system boots.