Ubuntu – Removing entries from UEFI menu with efibootmgr

dual-bootuefi

I would like to find out how to remove OSes (distros) from UEFI boot menu when you have entries with letters and asterisks.

I'd try it myself before asking but I'm not too techy and fixing the mess I might cause by doing something that I don't understand might take me ages.

  1. Let's say I want to get rid of Boot000E* which is opensuse, would I type sudo efibootmgr -b E* -B?

  2. Why are there some letters (not numbers) and

  3. What do asterisks * mean there?

$ sudo efibootmgr
BootCurrent: 0008
Timeout: 2 seconds
BootOrder: 0008,0010,000C,0009,0006,000F,000E,000D,0007,000B
Boot0000  BIOS Setup       
Boot0001  Boot Menu
Boot0002  Diagnostic Screen
Boot0003  Recovery and Utility
Boot0004  Diagnostic Program
Boot0005  Diagnostic Progrogram ROM
Boot0006* Floppy Disk Drive:
Boot0007* Drive0 HDD:
Boot0008* USB HDD:
Boot0009* USB CD/DVD:
Boot000A* Erase Disk
Boot000B* Windows Boot Manager
Boot000C* ubuntu
Boot000D* Fedora
Boot000E* opensuse
Boot000F* opensuse-secureboot
Boot0010* mageia

Best Answer

You should not include the asterisk when using boot numbers in an efibootmgr command. An asterisk simply identifies a boot entry that's active, vs. one that's inactive. The man page for efibootmgr isn't exactly clear about what that means, but my guess is that an inactive entry won't be booted even if it appears in the BootOrder list. Other than that, your command is correct; you'd type sudo efibootmgr -b E -B to remove the Boot000E entry.

In fact, the boot numbers are all numbers -- they're just hexadecimal numbers (base 16, hence digits 0 to F rather than 0 to 9). See the Wikipedia article on hexadecimal if you're unfamiliar with it.

Related Question