rhboot / rhboot/shim

fallback presents a scary message to users

Open
#418 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
1.1k
Forks
348
PR merge metrics
No merged PRs in 30d

Description

In the past, before fallback cared about TPMs, it would always chain-load the entry it had created, but to better support TPMs it now reboots the system if a TPM is present. Due to some firmware implementations overriding any changes made outside of the firmware, the system may end-up in a reboot loop of BOOTX64.EFI, as already reported by @lcp on https://github.com/rhboot/shim/issues/128.

This problem is currently addressed by commit a5db51a52e, which presents a screen warning the user the system is about to reboot, with a countdown, allowing them to tell the system to keep booting instead. While this solution works (and thanks @lcp for implementing it!), it has a few shortcomings:

  1. It makes an otherwise glitch-free boot process not smooth anymore;
  2. The message presented is not accessible / potentially scary for non-technical users: if they press a key to interrupt the boot process, the meaning of each option is not really clear for users not familiar with how shim / fallback work;
  3. The whole experience is made a bit worse by the fact that after selecting "Continue boot" / "Always continue boot", the screen will remain frozen until something else draw on the framebuffer. If GRUB is configured to be quiet for a glitch-free boot, this may last several seconds until the kernel has started and loaded the manufacturer logo from BGRT, which gives the impression that the whole boot process froze.
  4. This Boot Option Restoration screen overwrites all the debug information printed before it is displayed, essentially neutering FALLBACK_VERBOSE or SHIM_VERBOSE and making it impossible to enable debug without rebuilding fallback.

Some of these may be seen as non-issues for distributions that use a traditional installer, like Fedora and OpenSuse, where the correct boot entry is created before first boot by the installer and the fallback path is only taken if the boot entry got invalidated somehow (ESP UUID has changed, firmware was factory-reset etc). But for distributions that are distributed as "ready-to-dd" disk image, like Endless OS, fallback is responsible for creating the boot entry on first boot, and then update it on the second boot after the ESP UUID changes during the first-boot re-partitioning process (since we don't want the partitions on every installation to have the same UUIDs). This means users will see this message on the first and second boots in such scenarios.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review commit a5db51a52e and the fallback Boot Option Restoration screen described in the issue. Establish how the reboot warning, boot continuation choices, framebuffer behavior, and FALLBACK_VERBOSE or SHIM_VERBOSE output currently work. Done should mean a clearer, accessible experience that avoids the apparent freeze and preserves the available debug information.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
operating-systems, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.