Skip to content

GRUB2 Cheatsheet

This is a quick cheatsheet on manipulating GRUB2 as Red Hat, Fedora, and CentOS have set things up.

I will set this cheatsheet up in a somewhat logical chronological order. So configurations possible, then finally at the end, how to commit the changes. GRUB2 needs a "reinstall" of sorts to apply new changes, so simply modifying the files do nothing functionally. A slight change from GRUB1's behavior.

Also, one thing that should be noted, things get wonky very quickly when you mix EFI and BIOS modes. If you want to prolong the color in your hair, stick EFI across the board, or BIOS across the board. Advice also on using the most recent mode available. So if your system supports EFI, use it over BIOS. But if you are going into a dual/triple/quadruple boot scenario that had BIOS modes on an EFI motherboard, stick with the BIOS mode and configure your EFI setup to support usage of BIOS boot modes.


We have several files that are of note, whether they are physically touched by us is another story. Depending on what change is desired, certain files take care of that need.

  1. /etc/default/grub
  2. /etc/grub.d/00_header
  3. /etc/grub.d/01_users
  4. /etc/grub.d/10_linux
  5. /etc/grub.d/20_linux_xen
  6. /etc/grub.d/20_ppc_terminfo
  7. /etc/grub.d/30_os-prober
  8. /etc/grub.d/40_custom
  9. /etc/grub.d/41_custom
  10. /boot/efi/EFI/fedora/grub.cfg
  11. /boot/grub2/grub.cfg

File 1 is where most editing will be done. This is the main configuration. This along with what is called in 2-9 will physically build and install a working bootloader and menu

Files 2-9 are where some magic behind the scenes happens. Each file sort of denotes its function, and will perform the relevant task(s) in putting menu entries together. Custom entries are done via a "40_custom" file, linux kernels via the "10_linux" file, probing of installations is done via the "30_os-prober" file, etc.

10 and 11 are exclusive to each other. 10 is your EFI and 11 is your BIOS installation file. If you are using EFI, 10 is used, 11 for BIOS/Legacy based installations.


The main place to edit the configuration of GRUB2 is at:


And you will see something akin to this (I may have some slight modifications present):

    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_CMDLINE_LINUX="rd.driver.blacklist=nouveau rhgb quiet"


To add an entry to the menu, usually speaking, a rebuild of the GRUB2 install (later on in the cheatsheet) will see it during the probe portion, and add it to the menu for you. If that fails, or you want to create something by hand, here is what you will want to do.

We will need to edit the following file:


Or create a new one:


And what we will need to put there at a minimum:

    exec tail -n +3 $0
    # This file provides an easy way to add custom menu entries.  Simply type the
    # menu entries you want to add after this comment.  Be careful not to change
    # the 'exec tail' line above.
    menuentry "<Title>"{

The menu entry will have all the necessary info for said boot. Here is a copy of a Linux menu entry.

    menuentry 'My first custom entry' --class red --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.2.0-1.fc23.x86_64-advanced-32782dd0-4b47-4d56-a740-2076ab5e5976' {
            set gfxpayload=keep
            insmod gzio
            insmod part_msdos
            insmod xfs
            set root='hd0,msdos1'
            if [ x$feature_platform_search_hint = xy ]; then
              search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'  7885bba1-8aa7-4e5d-a7ad-821f4f52170a
              search --no-floppy --fs-uuid --set=root 7885bba1-8aa7-4e5d-a7ad-821f4f52170a
            linux16 /vmlinuz-4.2.0-1.fc23.x86_64 root=/dev/mapper/fedora-root ro vconsole.font=latarcyrheb-sun16 vconsole.keymap=us crashkernel=auto rhgb quiet LANG=en_US.UTF-8
            initrd16 /initramfs-4.2.0-1.fc23.x86_64.img

And a sample Windows menu entry:

    menuentry “Microsoft Windows 10″ {
    set root=(hd0,1)
    chainloader +1


To commit the changes that have been made you will need to run grub2-mkconfig:

  • EFI

    grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
  • BIOS/Legacy

    grub2-mkconfig -o /boot/grub2/grub.cfg