Skip to content

Latest commit

 

History

History
106 lines (94 loc) · 3.13 KB

architecture-rhcos-updating-bootloader.adoc

File metadata and controls

106 lines (94 loc) · 3.13 KB

Updating the bootloader using bootupd

To update the bootloader by using bootupd, you must either install bootupd on {op-system} machines manually or provide a machine config with the enabled systemd unit. Unlike grubby or other bootloader tools, bootupd does not manage kernel space configuration such as passing kernel arguments.

After you have installed bootupd, you can manage it remotely from the {product-title} cluster.

Note

It is recommended that you use bootupd only on bare metal or virtualized hypervisor installations, such as for protection against the BootHole vulnerability.

Manual install method

You can manually install bootupd by using the bootctl command-line tool.

  1. Inspect the system status:

    # bootupctl status
    Example output for x86_64
    Component EFI
      Installed: grub2-efi-x64-1:2.04-31.fc33.x86_64,shim-x64-15-8.x86_64
      Update: At latest version
    Example output for arm64
    Component EFI
      Installed: grub2-efi-aa64-1:2.02-99.el8_4.1.aarch64,shim-aa64-15.4-2.el8_1.aarch64
      Update: At latest version
  1. {op-system} images created without bootupd installed on them require an explicit adoption phase.

    If the system status is Adoptable, perform the adoption:

    # bootupctl adopt-and-update
    Example output
    Updated: grub2-efi-x64-1:2.04-31.fc33.x86_64,shim-x64-15-8.x86_64
  2. If an update is available, apply the update so that the changes take effect on the next reboot:

    # bootupctl update
    Example output
    Updated: grub2-efi-x64-1:2.04-31.fc33.x86_64,shim-x64-15-8.x86_64
Machine config method

Another way to enable bootupd is by providing a machine config.

  • Provide a machine config file with the enabled systemd unit, as shown in the following example:

    Example output
      variant: rhcos
      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