From Fedora Project Wiki

Description

This tests whether a Fedora CoreOS instance updated to the latest next stream can have its bootloader updated via bootupd.

Setup

  1. Have access to a (or install a new) FCOS instance running either the stable or testing stream.
    • You can boot the system either in UEFI or BIOS mode.
    • RAID setups are now supported in bootupd.

How to test

  1. Verify that your FCOS system is running on stable (or testing):
    $ rpm-ostree status
    State: idle
    Deployments:
    ● ostree://fedora:fedora/x86_64/coreos/stable
                       Version: 32.20201018.3.0 (2020-11-02T20:54:53Z)
                        Commit: a6f3e91ad6e0b8e132769c1694ed9b747a339c04e4e6256fce3afd81c85e1f1f
                  GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0
    

    The black circle ● shows the currently booted tree (if you see multiple deployments available). The current tree should show fedora/x86_64/coreos/stable. The rest of the lines may differ from the above output.

  2. Follow the Update Streams documentation to switch your system to the next stream.
    • A package difference should be displayed during the switch operation for you to review.
  3. Reboot
  4. Verify that your system is now running on the next stream:
    $ rpm-ostree status
    State: idle
    Deployments:
    ● State: idle
    AutomaticUpdatesDriver: Zincati
      DriverState: active; periodically polling for updates (last checked Sun 2021-04-25 17:44:22 UTC)
    Deployments:
    * ostree://fedora:fedora/x86_64/coreos/next
                       Version: 34.20210418.1.0 (2021-04-21T14:49:53Z)
                        Commit: 7e6668b2ed6cc3693077e2c10e217accbe3affeb10208ea1a5959f0758398343
                  GPGSignature: Valid signature by 8C5BA6990BDB26E19F2A1A801161AE6945719A39
      ostree://fedora:fedora/x86_64/coreos/stable
                       Version: 32.20201018.3.0 (2020-11-02T20:54:53Z)
                        Commit: a6f3e91ad6e0b8e132769c1694ed9b747a339c04e4e6256fce3afd81c85e1f1f
                  GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0
    

    The current tree should show fedora/x86_64/coreos/next. The rest of the lines may differ from the above output.

  5. Verify that the bootloader has been updated via bootloader-update.service.
    $ journalctl -u bootloader-update.service 
    Sep 28 07:41:00 localhost systemd[1]: Starting bootloader-update.service - Update bootloader on boot...
    Sep 28 07:41:03 cosa-devsh bootupctl[1012]: Previous BIOS: grub2-tools-1:2.12-32.fc42.x86_64
    Sep 28 07:41:03 cosa-devsh bootupctl[1012]: Updated BIOS: grub2-tools-1:2.12-40.fc43.x86_64
    Sep 28 07:41:03 cosa-devsh bootupctl[1012]: Previous EFI: grub2-efi-x64-1:2.12-32.fc42.x86_64,shim-x64-15.8-3.x86_64
    Sep 28 07:41:03 cosa-devsh bootupctl[1012]: Updated EFI: grub2-efi-x64-1:2.12-40.fc43.x86_64,shim-x64-15.8-3.x86_64
    Sep 28 07:41:03 cosa-devsh systemd[1]: Finished bootloader-update.service - Update bootloader on boot.
    

    The output should show Previous: Updated:. Version strings may differ from the above output.

  6. Verify the output of bootupctl status:
    $ sudo bootupctl status
    Running as unit: bootupd.service
    Component BIOS
      Installed: grub2-tools-1:2.12-40.fc43.x86_64
      Update: At latest version
    Component EFI
      Installed: grub2-efi-x64-1:2.12-40.fc43.x86_64,shim-x64-15.8-3.x86_64
      Update: At latest version
    No components are adoptable.
    CoreOS aleph version: 42.20250914.1.0
    Boot method: EFI
    

    The output should show Update: At latest version.

  7. Reboot the system to test the new bootloader.

Expected Results

  1. The system successfully reboots and runs on the next stream with the latest bootloader.
  2. The system is functional (you can connect the same way as before, your services are running as before).
  3. The linked documentation is clear, all steps are understandable, and nothing important is missing from it.

Optional

  1. You can try the same steps, but automating the bootloader update via a systemd service as described in https://docs.fedoraproject.org/en-US/fedora-coreos/bootloader-updates/ the documentation].