Skip to content

Commit

Permalink
Add a bootupd section
Browse files Browse the repository at this point in the history
Let's describe the status quo.
  • Loading branch information
cgwalters committed Nov 11, 2020
1 parent 6df9ec4 commit fd71f1d
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
1 change: 1 addition & 0 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
** OS updates
*** xref:update-streams.adoc[Update Streams]
*** xref:auto-updates.adoc[Auto-Updates]
*** xref:bootloader-updates.adoc[Bootloader Updates]
** Troubleshooting
*** xref:manual-rollbacks.adoc[Manual Rollbacks]
*** xref:access-recovery.adoc[Access Recovery]
Expand Down
79 changes: 79 additions & 0 deletions modules/ROOT/pages/bootloader-updates.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
= Updating the bootloader

== bootupd

Updating the bootloader is not currently automatic. The https://github.com/coreos/bootupd/[bootupd]
project is included in Fedora CoreOS and may be used for manual updates.

This is usually only relevant on bare metal scenarios, or virtualized
hypervisors that support Secure Boot. An example reason to update the
bootloader is for https://eclypsium.com/2020/07/29/theres-a-hole-in-the-boot/[the BootHole vulnerablity].

Inspect the system status:

[source,bash]
----
# bootupctl status
Component EFI
Installed: grub2-efi-x64-1:2.04-31.fc33.x86_64,shim-x64-15-8.x86_64
Update: At latest version
#
----

If an update is available, use `bootupctl update` to apply it; the
change will take effect for the next reboot.

[source,bash]
----
# bootupctl update
...
Updated: grub2-efi-x64-1:2.04-31.fc33.x86_64,shim-x64-15-8.x86_64
#
----

.Example systemd unit to automate bootupd updates
[source,yaml]
----
variant: fcos
version: 1.1.0
systemd:
units:
- name: custom-bootupd-auto.service
enabled: true
contents: |
[Unit]
Description=Bootupd automatic update
[Service]
ExecStart=/usr/bin/bootupctl update
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
----

=== Using images that predate bootupd

Older CoreOS images that predate the existence of bootupd need
an explicit "adoption" phase. You can see this by looking at
`bootupctl status` and if it says the component is "Adoptable".

[source,bash]
----
# bootupctl adopt-and-update
...
Updated: grub2-efi-x64-1:2.04-31.fc33.x86_64,shim-x64-15-8.x86_64
#
----

=== Future versions may default to automatic updates

It is possible that future Fedora CoreOS versions may default
to automating bootloader updates similar to the above.
If you choose to add a systemd unit per above (or manually
`ssh` to a node for updates), note that concurrent
`bootupctl update` invocations will not explicitly conflict.
The only side effect is that without explicit ordering,
one invocation may see and perform an update, and
the second may detect no update available.

0 comments on commit fd71f1d

Please sign in to comment.