I know the UEFI boot loaders are stored on a FAT32 partition on my (usually GPT) drive, but where is the boot order stored?

My reasoning:

  • It can't be stored as part of the firmware settings, since it's specific to the storage drive, not the computer.
  • It can't be in a boot-loader-specific database, because then the firmware wouldn't know how to change the order since it wouldn't know the format (but mine can).
  • It doesn't seem to be in a text file or something.

So where is it?

  • 5
    In the firmaware of the system board Time for some reading also over here – Moab Aug 11 '15 at 21:56
  • 1
    @Moab: Oh what the heck. So if I move the drive to another instance of the same computer model it won't boot? – Mehrdad Aug 11 '15 at 22:07
  • It should, the firmware is a mini OS that enumerates all attached hardware before the actual boot process. – Moab Aug 11 '15 at 23:09
  • Also when you move a windows installation to different hardware, even if it is the same model exactly, widows activation may be inactivated. – Moab Aug 11 '15 at 23:12
  • 1
    @Moab: That doesn't make sense. If the boot entries are stored in the system board's NVRAM then that means the second computer can't find the boot entries on the drive, since they're not there. Hence I don't see how it could possibly be able to boot from the drive. And yes, I know perfectly well about Windows activation but that's irrelevant to my question here. – Mehrdad Aug 11 '15 at 23:13

Moab was right, the order is stored in the pc in NVRAM.

From the link Moab shared: (https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/)

“The UEFI boot manager is a firmware policy engine that can be configured by modifying architecturally defined global NVRAM variables. The boot manager will attempt to load UEFI drivers and UEFI applications (including UEFI OS boot loaders) in an order defined by the global NVRAM variables.”

And from the linux efibootmgr manual (a utility to manipulate the boot order etc, here: https://linux.die.net/man/8/efibootmgr ):

Note: efibootmgr requires that the kernel support access to EFI non-volatile variables

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.