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 in UEFI mode.

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 an update available:
    $ sudo bootupctl status
    Component EFI
      Installed: grub2-efi-x64-1:2.06-6.fc34b.x86_64,shim-x64-15.4-4.x86_64
      Update: Available: grub2-efi-x64-1:2.06-6.fc35.x86_64,shim-x64-15.4-5.x86_64
    No components are adoptable.
    CoreOS aleph image ID: fedora-coreos-34.20211006.dev.0-qemu.x86_64.qcow2
    Boot method: BIOS
    

    The output should show Update: Available:. Version strings may differ from the above output.

  6. Update the bootloader:
    $ sudo bootupctl update
    Updated EFI: grub2-efi-x64-1:2.06-6.fc35.x86_64,shim-x64-15.4-5.x86_64
    
  7. Verify the output of bootupctl status:
    $ sudo bootupctl status
    Component EFI
      Installed: grub2-efi-x64-1:2.06-6.fc35.x86_64,shim-x64-15.4-5.x86_64
      Update: At latest version
    No components are adoptable.
    CoreOS aleph image ID: fedora-coreos-34.20211006.dev.0-qemu.x86_64.qcow2
    Boot method: BIOS
    

    The output should show Update: At latest version.

  8. 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].