Thursday, November 10, 2011

Fedora 16 does not Boot if /boot is on Software RAID

In previous versions of Fedora, you could configure /boot to exist on a software RAID device (say a software mirror), however in Fedora 16 this will result in failure to boot. This wasn't a supported configuration, but it used to work.

This is a known "issue" and is explained as follows:

Cannot boot with /boot partition on a software RAID array
link to this item - Bugzilla: #750794

Attempting to boot after installing Fedora 16 with the /boot partition on a software RAID array will fail, as the software RAID modules for the grub2 bootloader are not installed. Having the /boot partition on a RAID array has never been a recommended configuration for Fedora, but up until Fedora 16 it has usually worked.

To work around this issue, do not put the /boot partition on the RAID array. Create a simple BIOS boot partition and a /boot partition on one of the disks, and place the other system partitions on the RAID array. Alternatively, you can install the appropriate grub2 modules manually from anaconda's console before rebooting from the installer, or from rescue mode. Edit the file /mnt/sysimage/boot/grub2/grub.cfg and add the lines:

insmod raid
insmod mdraid09
insmod mdraid1x
Now run these commands:

chroot /mnt/sysimage
grub2-install /dev/sda
grub2-install /dev/sdb
Adjust the device names as appropriate to the disks used in your system.

I had a system where I'd created a mirror for /boot that had been reinstalled from Fedora 13, 14, 15 and now 16. As reported, it failed to boot following the F16 install.

Destroying the mirror and creating a simple /dev/sda2 partition for /boot got it booting.

3 comments:

that_rat said...

This drove me insane until I found the article you mentioned. I reinstalled so many times trying slightly different things to see if what options I was selecting during the install is what I did wrong. Every single time with failure. Doing an install with a separate /boot partition right now. This had better work after all of this drama. Not thrilled about having /boot hanging out on it's own when the rest of the file systems are mirrored...

awesomeM said...

There is a better work-around than the one mentioned above.

Go ahead and put your boot on a raid partition.

Then, boot the install media with the "rescue" option.

Run a shell, and once it's open run:
chroot /mnt/sysimage

To rewrite the grub2 config, you'll run:

grub2-mkdevicemap
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda
grub2-install /dev/sdb

Then, exit, and reboot. Your machine should now boot with /boot on a raid device.

Anonymous said...

Under Fedora Core 17, the grub2_mkdevicemap is replaced and the recover works as follows:

grub2-install --recheck /dev/sda
grub2-install --recheck /dev/sdb
grub2-mkconfig -o /boot/grub2/grub.cfg

Thank you all!