From Fedora Project Wiki

< Changes

Revision as of 06:18, 7 June 2018 by Jkurik (talk | contribs) (https://pagure.io/fesco/issue/1905)

Hide the grub menu

Summary

On systems with only a single OS installed, the grub menu does not offer any useful functionality, so we should hide it by default.

Owner

Current status

  • Targeted release: Fedora 29
  • Last updated: 2018-06-07
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

On systems with only a single OS installed, the grub menu's only function is to allow booting older kernels, which is only necessary as a rescue option in case of a severe kernel bug and as such not something which is directly useful for normal use.

Fedora already has a lot of work done to not show too technical boot messages to end users during bootup, e.g. we pass quiet to the kernel and we've plymouth to show a bootsplash instead of a bunch of "Starting service-foo: OK" messages.

The grub menu with its kernel versions is another example of showing too technical info to end-users and on non multi-boot systems it normally is not necessary, so it is better to hide it.

The implementation of this consists of the following changes:

  1. Currently if the menu is hidden the user needs to press ESC to show it, modify grub to also except F8 as show-menu key, there are 2 reasons for this:
    1. F8 is (was) the key to bring up the boot/rescue menu in Windows
    2. On some machines ESC brings up the firmware-setup menu
  2. On non multi-boot systems set GRUB_HIDDEN_TIMEOUT=1 and GRUB_HIDDEN_TIMEOUT_QUIET="true" in /etc/default/grub

Benefit to Fedora

Not showing the menu leads to a smoother and faster boot experience making for a better user-experience.

Scope

  • Proposal owners:
  1. Add patches to grub to also make pressing F8 show the menu
  2. Make sure this is all properly documented in release-notes, etc.
  3. Write patches for anaconda to set GRUB_HIDDEN_TIMEOUT=1 and GRUB_HIDDEN_TIMEOUT_QUIET="true" in /etc/default/grub on non multi-boot systems
  • Other developers:
  1. The anaconda developers will need to review and merge the /etc/default/grub related patches
  • Release engineering: [1] (a check of an impact with Release Engineering is needed)
  • Policies and guidelines: The policies and guidelines do not need to be updated.
  • Trademark approval: Not needed for this Change.

Upgrade/compatibility impact

The changes are in the /etc/default/grub file which is generated at install time. Users upgrading from a previous Fedora version will keep the old behavior. The plan is to document how to manually hide the menu. The manual process is intended both for users who want to switch to the new behavior after upgrade, as well as for users of multi-boot systems who still want to hide the menu.

How To Test

  1. Install Fedora in a fresh vm or select reclaim diskspace -> delete all in the installer (od a single os install).
  2. Boot the system the grub menu should not show
  3. (Re)boot press F8 repeatedly when the firmware / vendor logo shows, you should now get the grub menu

User Experience

Single OS Workstation installs boot in a smooth manner without showing any text / menus to the user all the way into the graphical login manager (gdm).

Dependencies

None

Contingency Plan

  • Contingency mechanism: Undo the anaconda changes.
  • Contingency deadline: Beta Freeze
  • Blocks release? No
  • Blocks product? Workstation

Documentation

TODO

Release Notes

TODO