Ubuntu – Grub EFI entries and Boot-Repair

bootboot-repairgrub2uefiwindows 8

I installed Ubuntu 12.10 on a Dell laptop with OEM Windows 8 on it.

At first, my Grub menu didn't show at all, so I changed the /etc/default/grub file commenting the line GRUB_HIDDEN_TIMEOUT=0.
After that, my Grub menu appeared, but it showed only the Ubuntu entries (no trace of Windows 8 entries).

So I booted Ubuntu from LiveCD and followed this guide: Ubuntu Boot-Repair.
At the end a window appeared telling me this:

Please do not forget to make your BIOS boot on sda1/EFI/ubuntu/grubx64.efi file.

Which is something I didn't get how to manage. I went beyond this problem pretending indifference.

Now I have my Grub menu working and I can boot Windows 8, but I'm wondering what are the different entries that I have in the menu. Here they are:

  • Ubuntu
  • Advanced options for Ubuntu
  • Windows UEFI bkpbootmgfw.efi
  • Windows boot UEFI loader
  • EFI/Dell/Boot/bootmgfw.efi
  • EFI/Dell/Boot/bootx64.efi
  • System Setup

I don't know what these different entries mean, and I'd like to know if I can remove any of them from the GRUB menu.
So I rephrase my questions:

  1. How was I supposed to make my BIOS boot on sda1/EFI/ubuntu/grubx64.efi file?
  2. What do all these entries mean? What are their differences?
  3. Can I remove any of them? If so, how?

Best Answer

  1. How was I supposed to make my BIOS boot on sda1/EFI/ubuntu/grubx64.efi file?

    • sudo grub-install --efi-directory=/boot/efi /dev/sda should be correct, given that:

      • /dev/sda is the hard drive you installed Ubuntu on
      • /boot/efi is where your EFI System Partition (ESP) is mounted.
      • You booted in EFI mode.

      You can quickly check this by looking at the output of the following command:

      $ mount | grep efi
      none on /sys/firmware/efi/efivars type efivarfs (rw)
      /dev/sda1 on /boot/efi type vfat (rw)
    • How were you supposed to know this? It's not your fault. You should have been given proper instructions on how to properly install your operating system or troubleshoot your issue effectively. On the other side the highly praised freedom that Linux and FOSS can bring to you can only be achieved by learning how things work. Unfortunately, you would have to look into the log file that boot-repair creates and know what to do with this data.

      tl;dr: Some manpages are really useful. No, I'm not an RTFM type guy. I too like to get pointed to the specific paragraph, section or option that solves my problem before considering reading the entire page.

  2. Try them all out to know what they are for. As Rod Smith already said, boot-repair creates duplicates (because it doesn't know what it's doing). Alternatively you could create and compare their hashes.

  3. You could zip the files of the .efi programmes you don't want, then run sudo update-grub and verify that the menu still contains the entries necessary to boot Ubuntu and Windows (view the configuration file with nano /boot/grub/grub.cfg). If something is missing just unzip the files again.

    Do not confuse the GRUB menu with the UEFI boot menu.