== Summary ==
Improve the GRUB menu by only having the default boot option for each
installed operating system in the main menu, and the other options
into a sub-menu. This would better organize the boot options and lead
to an easier and seamless boot experience.
== Owner ==
* Name: [[User:Javierm|Javier Martinez Canillas]]
* Email: javierm(a)redhat.com
== Detailed Description ==
The current GRUB menu is confusing, specially when multiple operating
systems are installed. The Fedora boot entries are added first and
then the ones for the other installed operating systems.
The main menu contains all the boot entries for Fedora but only the
default boot entry for the other operating systems, the non-default
boot entries for the other installed operating systems are placed into
a per operating system sub-menu.
An example of how the GRUB menu currently looks can be found at
This can be improved by adding a sub-menu for the Fedora non-default
boot entries, as is already the case for the other installed operating
systems. This will make the boot entries for all the operating systems
Another improvement would be to group all the default options for the
operating systems as one section, followed by another section that
groups all the sub-menus for the non-default options.
A tentative design made by Allan Day for the improved GRUB menu can be
found at [https://wiki.gnome.org/Design/OS/BootOptions#Tentative_Design
For Fedora, the boot option in the main menu will either be the
selected default boot entry or if no default was chosen, the latest
installed kernel. For the other installed operating systems, the boot
option in the main menu will be the latest kernel as found by GRUB's
== Benefit to Fedora ==
Making the menu less confusing and with better organized boot options
will lead to a better user experience and make easier for users to
choose the operating systems to boot.
== Scope ==
* Proposal owners:
# Change GRUB to implement the changes as described in the "Detailed
# Make sure this is all properly documented in release-notes, etc.
* Other developers:
# Test and watch for regressions.
* Policies and guidelines: The policies and guidelines do not need to
* Trademark approval: No changes needed.
== Upgrade/compatibility impact ==
The changes are in the grub.cfg file generated at install time by
Anaconda. Users can manually enable this after an upgrade by executing
gru2-mkconfig to regenerate their grub.cfg file.
== How To Test ==
# Single OS test
## Install Fedora in a VM.
## On boot the default boot option is in the main menu and the other
options (e.g: rescue boot option) are in a sub-menu.
# Multi boot test
## Install Fedora on a machine which other operating system installed.
## On boot the default boot options for the operating systems are in
the main menu and the other options in sub-menus.
== User Experience ==
A simpler and easier to understand GRUB boot menu. Choosing which
operating system to boot should be simpler and involve less steps.
== Dependencies ==
== Contingency Plan ==
* Contingency mechanism: Revert the GRUB changes.
* Contingency deadline: Beta Freeze
* Blocks release? No
* Blocks product? None
Fedora Program Manager