Comment 9 for bug 1229738

Revision history for this message
Charles Hill (cphill) wrote :

I also found this bug. I installed 12.04.3 LTS Server using md raid1 for root partition on x86-64 box using EFI boot. The Ubuntu installer (alternate_amd.iso) sets up partitions /boot/efi and / and swap.

I also found grub installs its EFI app correctly, and it launches at boot. However, grub can't find the root partition.

I found a different answer on how to patch around this from: http://askubuntu.com/questions/355727/how-to-install-ubuntu-server-with-uefi-and-raid1-lvm. Manually edit /boot/efi/EFI/ubuntu/grub.cfg and substitute the correct UUID for the sw raid for the bad UUID in this file. The system will now reboot, but I haven't tested booting from a HW off.

What I'm concerned about is "how does this work?" The bootloader GRUB2 is reading /boot/efi/EFI/ubuntu/grub.cfg from the /boot/efi FAT32 UEFI partition and executes a command "search_fs_uuid uuid root" which finds the uuid for the RAID1 md device. But how does GRUB2 know about sw raid devices? The / filesystem is on a RAID1. GRUB2 needs to load /boot/grub/grub.cfg and run it.

My hypothesis is GRUB2 goes to the md superblock and finds the uuids for the devices in the raid, goes to one of those, and since it is mirrored (RAID1), can fetch from /boot/grub. Is that right?

Perhaps this bug is easily fixed by the installer making the UEFI FAT32 partition be at /boot instead of /boot/efi. In that case, /boot/grub/grub.cfg will be in the UEFI partition and GRUB2 will always know how to access it even if / is RAID5.

Can anyone confirm this line of thinking?