[syslinux] Bootloader data in /boot vs package systems (and atomic updates)

Colin Walters
Tue, 22 Apr 2014 22:58:07 -0000

Hi,

I'm working on https://wiki.gnome.org/Projects/OSTree which is a
general-purpose update system for Linux-based operating systems.  It
isn't a package system itself, but operates at the same level.

A primary goal of OSTree is fully atomic updates, and the "swapped
chroots" model works well for most of userspace and the
kernel/initramfs.

However, syslinux relies on loadable modules in /boot.  At present in
Fedora at least, the RPM package updates these, and it has a %post to
ensure that when a newer version of extlinux is installed, we update
both the boot modules and the MBR.

For more background, see:
https://bugzilla.redhat.com/show_bug.cgi?id=1090083

In constrat, GRUB2 keeps its modules in /usr/lib, and grub-install
*copies* them to /boot at the same time that the MBR is updated.

I like this model more as it allows me to decouple the delivery of
updated bootloader data with its actual installation, and ensure that
when I do want to update the bootloader, it can happen at a safe(r)
time.

Would there be any interest in patches for extlinux to support this
model?

Any thoughts on the general topic?