Skip to Content

How to Fix EFI BIOS GRUB Boot Issues on Fedora Linux

If you have installed Fedora Linux on your laptop or desktop computer, you may encounter a problem where the system fails to boot properly and drops you into an EFI BIOS GRUB shell. This can be frustrating and confusing, especially if you don’t know how to use the GRUB commands to troubleshoot the issue. In this article, we will explain what causes this problem and how to fix it using a bootable USB drive and a few simple steps.

What is EFI BIOS GRUB?

EFI BIOS GRUB is a combination of three terms that relate to the boot process of your computer:

  • EFI stands for Extensible Firmware Interface, which is a standard for the software interface between the operating system and the firmware. EFI provides a consistent way to boot and configure various devices and operating systems.
  • BIOS stands for Basic Input/Output System, which is a type of firmware that initializes and tests the hardware components of your computer before loading the operating system. BIOS also provides a menu to change the boot order and other settings of your computer.
  • GRUB stands for GRand Unified Bootloader, which is a program that loads and transfers control to the operating system kernel. GRUB can also provide a menu to choose between different operating systems and kernels installed on your computer.

When you turn on your computer, the EFI firmware loads the BIOS, which then loads the GRUB bootloader from the EFI System Partition (ESP) on your hard drive. The GRUB bootloader then displays a menu with the available operating systems and kernels, and lets you select which one to boot.

What Causes the EFI BIOS GRUB Boot Issue?

Sometimes, the GRUB bootloader may fail to load or display the menu, and instead drop you into a GRUB shell with a prompt like this:

grub>

This means that GRUB cannot find the configuration file that contains the menu entries and the commands to boot the operating system. There are several possible reasons for this, such as:

  • The ESP is corrupted or damaged, and GRUB cannot read the configuration file from it.
  • The configuration file is missing, renamed, or moved to a different location, and GRUB cannot locate it.
  • The configuration file is invalid or contains errors, and GRUB cannot parse it.
  • The configuration file points to a wrong or non-existent partition, kernel, or initramfs, and GRUB cannot boot the operating system.

How to Fix the EFI BIOS GRUB Boot Issue?

To fix the EFI BIOS GRUB boot issue, you need to have a bootable USB drive with a Fedora Linux installation image on it. You can create one using a tool like Fedora Media Writer or Rufus on another computer. Once you have the bootable USB drive ready, follow these steps:

  1. Insert the bootable USB drive into your computer and restart it.
  2. Press the appropriate key (usually F2, F10, F12, or Esc) to enter the BIOS menu and change the boot order to boot from the USB drive first.
  3. When the Fedora Linux installation screen appears, choose Troubleshooting > Rescue a Fedora system.
  4. Follow the instructions to mount your Fedora Linux system as read-write under /mnt/sysimage.
  5. Open a terminal window and switch to the root user by typing su –.
  6. Check the UUID of your ESP by typing blkid | grep EFI. You should see something like this:
     /dev/sda1: UUID="1234-ABCD" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="abcd-1234-efgh-5678"
    
  7. Note down the UUID value (e.g., 1234-ABCD) and the device name (e.g., /dev/sda1) of your ESP.
  8. Edit the GRUB configuration file by typing nano /mnt/sysimage/etc/default/grub. You should see something like this:
     GRUB_TIMEOUT=5
     GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
     GRUB_DEFAULT=saved
     GRUB_DISABLE_SUBMENU=true
     GRUB_TERMINAL_OUTPUT="console"
     GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora-swap rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb quiet"
     GRUB_DISABLE_RECOVERY="true"
     GRUB_ENABLE_BLSCFG=true
    
  9. Check the value of the GRUB_CMDLINE_LINUX variable and make sure it contains the correct UUID of your ESP. For example, if your ESP has the UUID 1234-ABCD, you should see something like this:
     GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora-swap rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb quiet root=UUID=1234-ABCD"
    
  10. If the UUID value is missing or incorrect, add or correct it and save the file by pressing Ctrl+O and then Ctrl+X.
  11. Reinstall the GRUB bootloader by typing grub2-install –target=x86_64-efi –efi-directory=/boot/efi –bootloader-id=fedora –recheck –no-floppy /dev/sda, where /dev/sda is the device name of your hard drive. You should see something like this:
    Installing for x86_64-efi platform.
    Installation finished. No error reported.
    
  12. Rebuild the GRUB configuration file by typing grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg. You should see something like this:
    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-5.14.9-200.fc34.x86_64
    Found initrd image: /boot/initramfs-5.14.9-200.fc34.x86_64.img
    Found linux image: /boot/vmlinuz-0-rescue-abcdefg
    Found initrd image: /boot/initramfs-0-rescue-abcdefg.img
    done
    
  13. Exit the terminal window and reboot your computer by typing exit and then reboot.
  14. Remove the bootable USB drive and wait for your computer to boot into Fedora Linux normally.

Frequently Asked Questions (FAQs)

Question: What is the difference between EFI and UEFI?

Answer: EFI and UEFI are essentially the same thing. EFI stands for Extensible Firmware Interface, which is the original name of the standard for the software interface between the operating system and the firmware. UEFI stands for Unified Extensible Firmware Interface, which is the updated name of the standard after it was adopted by the UEFI Forum, a consortium of industry leaders that develops and maintains the specification. UEFI is the more common and modern term, but some vendors and users still use EFI interchangeably.

Question: How do I access the GRUB menu?

Answer: To access the GRUB menu, you need to press and hold the Shift key or the Esc key (depending on your system) during the boot process, right after the BIOS or UEFI screen disappears. You should see a menu with the available operating systems and kernels that you can choose from. You can also use the arrow keys and the Enter key to navigate and select the menu entries.

Question: How do I edit the GRUB menu entries?

Answer: To edit the GRUB menu entries, you need to edit the GRUB configuration file, which is usually located at /boot/grub/grub.cfg or /boot/efi/EFI/fedora/grub.cfg, depending on your system. However, this file is generated automatically by the GRUB scripts, so any changes you make will be overwritten the next time you update your system or run the grub2-mkconfig command. Therefore, it is recommended to edit the GRUB default file, which is located at /etc/default/grub, and then run the grub2-mkconfig command to update the GRUB configuration file. The GRUB default file contains the variables and options that control the behavior and appearance of the GRUB menu, such as the timeout, the default entry, the theme, and the kernel parameters.

Summary

In this article, we have learned how to fix the EFI BIOS GRUB boot issue on Fedora Linux using a bootable USB drive and a few simple steps. We have also learned what EFI BIOS GRUB is, what causes the boot issue, and how to access and edit the GRUB menu. We hope this article has helped you resolve the boot issue and enjoy your Fedora Linux system.

Disclaimer: This article is for informational purposes only and does not constitute professional advice. The author and the publisher are not liable for any damages or losses that may result from following the instructions or using the tools mentioned in this article. Always backup your data and test the solutions on a separate system before applying them to your main system.