My home server runs Ubuntu 12.04 with a software RAID 5 array and since a couple of days I’ve been getting e-mails from the SMART daemon warning me of uncorrectable errors on one of the drives. Today I took the time to take the failing drive out and check it with the tools from the manufacturer.
Because I didn’t want to run the risk of unplugging the wrong drive with the system on (and thus losing the whole RAID array) I shut the server down, removed the harddrive and started it again. The idea was that it would boot right back into the OS, but with a degraded RAID array. Unfortunately the server didn’t come up… After connecting a keyboard and monitor to it it turned out that the system was waiting with an initramfs prompt. From there I could check that the RAID array was indeed degraded, but functioning fine as I could manually mount all partitions.
Some Googling later I found out that by default Ubuntu doesn’t boot into a degraded software RAID array. This is to make sure you as administrator know something is wrong. A good idea for a laptop or PC, but not for a standalone server. The solution is the following:
- From the initramfs prompt mount your original filesystems, for example in /mnt.
- Use chroot /mnt to change root into your server’s hard disks.
- In the file /etc/initramfs-tools/conf.d/mdadm add or change the line to
BOOT_DEGRADED=true
- Then run
update-initramfs -u
to regenerate the initial ramdisk.
- Type exit to exit the chroot environment.
- Unmount your file systems and reboot
Now your server should continue booting even though it has a degraded RAID array.
Links
- Weblog of Dustin Kirkland, who worked on this feature for Ubuntu.
- The Ubuntu wiki page on this subject.
Leave a Reply