Removing entries from UEFI menu with efibootmgr
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.
Let's say I want to get rid of
Boot000E*
which is opensuse, would I typesudo efibootmgr -b E* -B
?Why are there some letters (not numbers) and
- 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
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.