How do edit the contents of my BIOS boot list?

So the other day I installed Windows 7 on a GPT disk. It works fine. Today I went to boot off my Linux Live USB and I noticed Windows Boot Manager was in the list. I use a traditional BIOS and it doesn't have any features to add anything to that list. I don't want to remove Windows Boot Manager, but I thought it would be more useful to add other operacting systems to it. Any way I can add other entries to the list?


Solution 1:

You don't have a BIOS; you have an EFI (or UEFI, which is EFI 2.x), which is a replacement for a BIOS. Unfortunately, many people, and even many manufacturers, refer to their EFIs as "BIOSes," but that creates confusion because people think that an EFI is just an updated sort of BIOS or a new BIOS feature. It's not; an EFI is a replacement for the decades-old BIOS, and is radically different in design and capabilities -- although both EFIs and BIOSes do handle the task of starting the computer's boot process.

I'm quite certain you've got an EFI and not a BIOS for two reasons:

  • Windows refuses to install to a GPT disk when it's booted in BIOS mode. Thus, if you really installed to a GPT disk, your computer must have an EFI.
  • BIOSes don't have boot manager menus like the one you describe; at best, with a BIOS, you'll see a list of boot devices ("Disk X," "CD-ROM drive," or whatnot), not a description like "Windows Boot Manager."

Ordinarily, when an OS installs itself on an EFI-based computer, it copies its boot loader to the EFI System Partition (ESP) and adds an entry to the firmware's boot manager list, which is stored in NVRAM. Thus, if you have other (EFI-mode) OSes to boot, they should already be noted in the boot manager list. If you've installed OSes and they do not show up in this way, there are basically two possible explanations:

  • The OSes added their entries, but they were subsequently deleted. This might have happened because of buggy firmware, bugs in software, deliberate action on the part of a user, an accident by a user, or for other reasons. Note that unplugging a disk and then powering on the computer will cause some EFIs to delete boot manager entries for boot loaders stored on that disk. (I mention this because such disk-juggling is a somewhat popular technique among experienced multi-boot users to help control BIOS boot loader and OS installation, so you may have tried it.)
  • You may have installed the OS using the computer's Compatibility Support Module (CSM; aka "legacy boot support"), which enables an EFI to run boot loaders designed for BIOS-based computers. Such boot loaders cannot be added to the EFI boot manager menu, except as BIOS-mode boot options, much as on BIOS-based computers.

You can manage the EFI boot manager list in quite a few different ways, including:

  • EasyUEFI -- This is a third-party (but free for the basic version) Windows GUI tool. It's probably the easiest way to manage the EFI boot manager list.
  • bcdedit -- This Windows command-line tool can manage the EFI boot entries. I don't happen to have a URL to a detailed use summary, but one example of its use is in the rEFInd installation instructions. (Note: I'm rEFInd's author.)
  • efibootmgr -- This is a Linux command-line tool that's roughly as powerful as EasyUEFI, albeit harder to use. Type man efibootmgr in Linux (with the tool installed) to learn how to use it.
  • A firmware's user interface -- Many EFIs' setup utilities enable you to rearrange EFI boot entries, and sometimes add or delete them. Details vary greatly from one EFI to another, though.
  • bcfg -- This command is available in an EFI version 2 shell. As with bcdedit, I don't have a URL for a detailed reference handy, but this Arch Linux wiki page presents a basic example.

Note that most computers' built-in EFI boot managers are extraordinarily primitive. Some are so poor as to be next to useless. For this reason, many people rely on other boot managers, including GRUB 2, gummiboot/systemd-boot, and rEFInd, to handle the task of selecting the OS. These tools must normally be registered in the EFI's built-in boot manager list themselves, which makes them susceptible to being forgotten for the reasons noted earlier.