GNOME Bugzilla – Bug 726757
handle non-kernel bootloader data in /boot
Last modified: 2014-06-23 17:15:51 UTC
extlinux wants to read modules in /boot/extlinux. Maybe we could put all of this data under /boot/loader and have it be atomic swapped? Or alternatively, just accept non-atomic upgrades for it?
And a third option: Install this once and only update outside of OSTree. Basically what you'd have to do to update the bootloader.
It looks like for extlinux+RPM, what we do is check in the %post if extlinux.conf exists, if so then we update it. One option here is to have a special place to update the bootloader. Perhaps each bootloader backend should support checking and updating it. The question then becomes - when should we do it? We could run e.g. "extlinux --update" either post-deployment, or on next boot. How do we handle interruption while writing out an updated bootloader? Should we keep a journal for this? And how do we handle atomic updates for this non-bootloader data like all of the modules in /boot/extlinux/*.c32 ? On the other hand, it looks to me like at least Fedora's grub2 package *doesn't* ever update the bootloader. Perhaps that's a better plan - just allow OS builders to implement updates for this in a systemd unit file.
See also: https://bugzilla.redhat.com/show_bug.cgi?id=1090083
Decisions: * Installers should lay this out exactly once at installation time. * Don't update bootloaders via ostree (or packages for that matter).