syncing ESP on UEFI computers, was: F19 RAID1 drive died - what if it was sda that died?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Upstream md/mdadm list ( linux-raid@xxxxxxxxxxxxxxx )  archives have a
bunch of proscriptions on using mdadm to sync EFI System partitions.
Last time I checked circa Fedora 21, the installer would in fact let
you setup a raid1 and mark it for use as /boot/efi (i.e. the ESP).

There are a bunch of logical and domain violations by doing this, but
the biggest reason for not doing it is if there is a change to either
ESP, mdadm raid cannot resolve the ambiguity, and if it discovers
mismatches in sectors between the two drives, it can mix and match the
fixups: some sectors from A go to B, and some sectors from B go to A.
And that's because mdadm has no idea which one is correct, only that
they are different, and a resync just makes them the same again. So it
can end up corrupting both ESPs.

The firmware is allowed to modify the ESP even though this is probably
rare in practice.

Anyway, I think it's better to change the symlink in /etc/
grub2-efi.cfg -> ../boot/efi/EFI/fedora/grub.cfg

So that it points to /boot/grub2/grub.cfg just as it does on BIOS
systems. Then create a "forwarding" grub.cfg on /boot/efi that goes
and finds the real grub.cfg. The real grub.cfg is on either /boot or /
on some kind of RAID so getting GRUB to find it is actually pretty
easy: it will look for an md UUID (the mdadm raid volume ID) and then
it needs to look for a file system volume UUID. Since these things are
the same on all member volumes, so long as you have the minimum drives
needed for successful degraded operation, GRUB will find the real
grub.cfg.

And GRUB finds the forwarding one, just by the fact it's in the same
directory on /boot/efi/EFI/fedora as the bootloader.

It's possible to use the real grub.cfg as a template, and just chop it
down to a few lines needed to search for the two UUIDs. And then use
the configfile command to point to the path to the real grub.cfg.

The result is completely seamless jump from the ESP forwarding
grub.cfg, to the /boot real grub.cfg. And by changing the /etc
symlink, grubby will update the real grub.cfg. And this will survive
major version upgrades. And it's more compatible with upstream GRUB.

Effectively the contents of /boot/efi (the ESP) never get modified, so
they two ESPs are never out of sync.

Just, if for any reason you need to recreate the grub.cfg from scratch
you have to put it on /boot/grub2 rather than /boot/efi.

And in the event of shim or grub update, you'll want to sync the ESPs
with e.g. rsync which you can do manually, as a one time thing.

Blah.


Chris Murphy
_______________________________________________
users mailing list -- users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxxxxxxxx



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux