Grub EFI entries and Boot-Repair
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:
- How was I supposed to make my BIOS boot on
sda1/EFI/ubuntu/grubx64.efi
file? - What do all these entries mean? What are their differences?
- Can I remove any of them? If so, how?
Solution 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.
-
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.
-
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 withnano /boot/grub/grub.cfg
). If something is missing just unzip the files again.Do not confuse the GRUB menu with the UEFI boot menu.
- How do I remove "Ubuntu" in the bios boot menu? (UEFI)
Solution 2:
- You use the
efibootmgr
command in Linux, thebcfg
command in an EFI version 2 shell, thebless
command in OS X (inapplicable on your Dell), or EFI-specific user interface features in some EFIs to set the default boot program. Typeman efibootmgr
to learn about the first of these. - Try the entries and see what each one does. Unfortunately, tools like Boot Repair tend to create duplicate entries, and some manufacturers create redundant or manufacturer-specific boot entries, so it's impossible to say what each of those entries really does except by testing them.
- Tools like GRUB Customizer can help you edit your GRUB menus. I know very little about this tool, though, since I've abandoned GRUB.