When a machine is in UEFI boot mode,
- there is an EFI firmware to manage the boot entries and order, we can use
efibootmgr(in target OS) to manipulate them. - there is also another way: IPMI from outside, such as
ipmitool -H host ... chassis bootdev pxe options=efibootto set boot mode and boot order to PXE first (although only valid for next boot in the example. (There are other ipmi command can persistently change boot order).
My question is, when the machine boot in UEFI mode, which side of the boot order info does it respect?
I could not find it in IPMI specification.
I also find that in the above example, it does not work if the machine has installed an OS and registered the OS's efi boot loader to the efi boot entries as the first one.
EDIT: The detail test procedure:
- Install an OS
- Change to UEFI boot mode, change boot order to DISK first.
- Reboot and during reboot confirm BIOS boot settings that it does use UEFI boot mode and the DISK entry is the first one.
- Run
ipmitool -H host ... chassis bootdev pxe options=efibootto change to UEFI boot mode & PXE boot first. - Reboot and during reboot confirm BIOS boot settings that it does use UEFI boot mode and a UEFI:<some network> as is the first one.
The result is still fallback to UEFI DISK boot( confirmed by ls /sys/firmware/efi in target OS).
One evidence of that UEFI boot does not respect the IPMI is that during reboot if I enter BIOS's "Boot order override" menu and choose the UEFI:<some network> then it works(UEFI PXE booted).
So the BIOS has correctly configured boot entries according to IPMI command, but UEFI boot firmware does not use that.