efibootmgr - change the UEFI Boot Manager configuration
Contents
Bugs
Please direct any bugs, features, patches, etc. to the Red Hat bootloader team at
https://github.com/rhboot/efibootmgr .
Description
efibootmgr is a userspace application used to modify the UEFI Boot Manager. This application can create
and destroy boot entries, change the boot order, change the next running boot option, and more.
Details on the UEFI Boot Manager are available from the UEFI Specification, v1.02 or later, available
from: http://www.uefi.orgNote: efibootmgr requires that the kernel support access to EFI non-volatile variables through
/sys/firmware/efi/vars or /sys/firmware/efi/efivars/.
Examples
Displayingthecurrentsettings(mustberoot):[root@localhost~]#efibootmgr
BootCurrent: 0004
BootNext: 0003
BootOrder: 0004,0000,0001,0002,0003
Timeout: 30 seconds
Boot0000* Diskette Drive(device:0)
Boot0001* CD-ROM Drive(device:FF)
Boot0002* Hard Drive(Device:80)/HD(Part1,Sig00112233)
Boot0003* PXE Boot: MAC(00D0B7C15D91)
Boot0004* Linux
Each of the above are boot variables, which are defined as follows:
• BootCurrent - the boot entry used to start the currently running system
• BootOrder - the boot order as would appear in the boot manager. The boot manager tries to boot
the first active entry in this list. If unsuccessful, it tries the next entry, and so on.
• BootNext - the boot entry which is scheduled to be run on next boot. This supersedes BootOrder
for one boot only, and is deleted by the boot manager after first use. This allows you to
change the next boot behavior without changing BootOrder.
• Timeout - the time in seconds between when the boot manager appears on the screen until when it
automatically chooses the startup value from BootNext or BootOrder.
• Five boot entries (0000 - 0004), along with the active/inactive flag (* means active) and the
name displayed on the screen.
Creatinganewbootoption
An OS installer would call efibootmgr-c. This assumes that /dev/sda1 is your EFI System Partition, and
is mounted at /boot/efi. This creates a new boot option, called "Linux", and puts it at the top of the
boot order list. Options may be passed to modify the default behavior. The default OS Loader is
\EFI\ubuntu\grub.efi.
Changingthebootorder
Assuming the configuration in the first example, efibootmgr-o3,4 could be called to specify PXE boot
first, then Linux boot.
Changingthebootorderforthenextbootonly
Assuming the configuration in the first example, efibootmgr-n4 could be called to specify that the
Linux entry be taken on next boot.
Deletingabootoption
Assuming the configuration in the first example, efibootmgr-b4-B could be called to delete entry 4 and
remove it from the BootOrder.
Creatingnetworkbootentries
A system administrator wants to create a boot option to network boot. You create the boot entry with:
efibootmgr-c-ieth0-Lnetboot[-l'\filename.efi']Name
efibootmgr - change the UEFI Boot Manager configuration
Options
The following is a list of options accepted by efibootmgr:
-a|--active
Set bootnum active.
-A|--inactive
Set bootnum inactive.
-b|--bootnumXXXX
Modify BootXXXX (hex).
-B|--delete-bootnum
Delete bootnum.
-c|--create
Create new variable bootnum and add to bootorder.
-C|--create-only
Create new variable bootnum and and do not add to bootorder.
-d|--diskDISK
The disk containing the loader (defaults to /dev/sda).
-D|--remove-dups
Remove duplicated entries from BootOrder.
-e|--edd1|3
Force EDD 1.0 or 3.0 creation variables.
Use -e1 together with -E if you are using a very old system which uses UEFI to boot, but requires
legacy CSM (BIOS) device drivers for storage devices.
-e3 is now deprecated, and is an alias for --full-dev-path.
-E|--edd-deviceNUM
EDD 1.0 device number (defaults to 0x80). See --edd.
--full-dev-path
Force creation of boot entries use a full UEFI device path, starting at the PCIe root or
equivalent on the current platform. The default is to use a hard disk based HD() abbreviated
path.
You shouldn't need to use this option unless the system firmware won't boot off of your device
using an abbreviated HD() device path.
Note that forcing a full path will fail if we don't know what the system device root is, how the
specified device is connected to it, or how to encode any one of those.
--file-dev-path
Force creation of boot entries use an abbreviated UEFI device path which starts with the File()
portion of the path. The default is to use a hard disk based HD() abbreviated path.
-f|--reconnect
Re-connect devices after driver is loaded. Only applicable for driver entries.
-F|--do-not-reconnect
Do not reconnect devices after driver is loaded. Only applicable for driver entries.
-g|--gpt
Force disk with invalid PMBR to be treated as GPT.
-i|--ifaceNAME
Create a netboot entry for the named interface.
-k|--keepNAME
Keep old entries when adjusting order.
-l|--loaderNAME
Specify a loader (defaults to \EFI\ubuntu\grub.efi).
-L|--labelLABEL
Boot manager display label (defaults to "Linux").
-m|--mirror-below-4Gt|f
Set t if you want to mirror memory below 4GB.
-M|--mirror-above-4GX
X percentage memory to mirror above 4GB. Floating-point value with up to 2 decimal places is
accepted.
-n|--bootnextXXXX
Set BootNext to XXXX (hex).
-N|--delete-bootnext
Delete BootNext.
-o|--bootorderXXXX,YYYY,ZZZZ
Explicitly set BootOrder (hex). Any value from 0 to FFFF is accepted so long as it corresponds to
an existing Boot#### variable, and zero padding is not required.
-O|--delete-bootorder
Delete BootOrder.
-p|--partPART
Partition number containing the bootloader (defaults to 1).
-q|--quiet
Quiet mode - suppresses output.
-r|--driver
Operate on Driver#### variables instead of Boot#### variables.
-t|--timeoutseconds
Boot Manager timeout, in seconds.
-T|--delete-timeout
Delete Timeout variable.
-u|--unicode|--UCS-2
Handle extra command line arguments as UCS-2 (default is ASCII).
-v|--verbose
Verbose mode - prints additional information.
-V|--version
Just print version string and exit.
-w|--write-signature
Write unique signature to the MBR if needed.
-y|--sysprep
Operate on SysPrep#### variables instead of Boot#### variables.
-@|--append-binary-args
Append extra variable args from file (use - to read from stdin). Data in file is appended as
command line arguments to the boot loader command, with no modification to the data, so you can
pass any binary or text data necessary.
Synopsis
efibootmgr [ -a ] [ -A ] [ -bXXXX ] [ -B ] [ -c ] [ -dDISK ] [ -D ] [ -e1|3|-1 ] [ -ENUM ] [ --full-dev-path | --file-dev-path ] [ -f ] [ -F ] [ -g ] [ -iNAME ] [ -lNAME ] [ -LLABEL ] [ -mt|f ] [ -MX
] [ -nXXXX ] [ -N ] [ -oXXXX,YYYY,ZZZZ... ] [ -O ] [ -pPART ] [ -q ] [ -r | -y ] [ -tseconds ] [ -T
] [ -u ] [ -v ] [ -V ] [ -w ] [ -@file ]
