1
0
mirror of https://github.com/containers/bootc.git synced 2026-02-05 06:45:13 +01:00
Colin Walters b5036b322c Don't exclusively own files in ESP
I have gone back and forth on whether bootupd should *exclusively*
own `/boot/efi` or not.  In the "adopted" case, we clearly cannot.

Let's be conservative for now and change the way we compute
diffs to be "relative" - this is a cleaner approach than
"compute diff but ignore removals".
2020-06-26 13:57:49 +00:00
2020-06-26 13:57:49 +00:00
2020-06-24 13:03:30 +00:00
2020-06-23 22:04:07 +00:00
2020-06-20 13:37:21 +00:00
2020-06-20 13:37:21 +00:00
2020-06-24 13:03:30 +00:00
2020-06-22 21:55:05 +00:00
2020-06-23 22:04:07 +00:00
2020-06-24 19:21:40 +00:00

bootupd: Distribution-independent updates for bootloaders

Today many Linux systems handle updates for bootloader data in an inconsistent and ad-hoc way. For example, on Fedora and Debian, a package manager update will update UEFI binaries in /boot/efi, but not the BIOS MBR data.

Many transactional update systems like OSTree and dual-partition systems like the Container Linux update system are more consistent: they normally cover kernel/userspace but not anything related to bootloaders.

The reason for this is straightforward: performing bootloader updates in an "A/B" fashion requires completely separate nontrivial logic from managing the kernel and root filesystem. Today OSTree e.g. makes the choice that it does not update /boot/efi (and also doesn't update the BIOS MBR).

The goal of this project is to be a cross-distribution, OS update system agnostic tool to manage updates for things like:

  • /boot/efi
  • x86 BIOS MBR
  • Other architecture bootloaders

This project originated in this Fedora CoreOS github issue.

Status

Currently a work in progress and is not ready to ship for production updates, but early feedback on the design is appreciated!

Relationship to other projects

fwupd

bootupd could be compared to fwupd which is project that exists today to update hardware device firmware - things not managed by e.g. apt/zypper/yum/rpm-ostree update today.

fwupd comes as a UEFI binary today, so bootupd would actually take care of updating fwupd itself.

The end result is that a system administrator would have 3 projects to monitor (one for hardware devices and 2 for the bootloader and OS state) but each would be clearly focused on its domain and handle it well. This stands in contrast with e.g. having an RPM %post script try to regenerate the BIOS MBR.

systemd bootctl

systemd bootctl can update itself; this project would probably just proxy that if we detect systemd-boot is in use.

Description
Boot and upgrade via container images
Readme 22 MiB
Languages
Rust 92.7%
Nushell 3%
Shell 2.2%
Just 0.6%
Dockerfile 0.5%
Other 1%