efibootbgr
Manage UEFI boot entries
TLDR
List the current settings / bootnums
List the filepaths
Add UEFI Shell v2 as a boot option
Change the current boot order
Delete a boot option
SYNOPSIS
efibootmgr [-v | --verbose] [-b | --bootnum] NNNN [-c | --create] [-L | --label] "label" [-l | --loader] \EFI\path\loader.efi [-d | --disk] /dev/sdX [-p | --part] NN [-o | --bootorder] NNNN,...
PARAMETERS
-b, --bootnum NNNN
Operate on specific boot entry by hex number
-B
Delete boot entry by number (deprecated)
-c, --create
Create new boot entry
-C NNNN, --copy NNNN
Copy existing boot entry NNNN
-d DEV, --disk DEV
Specify source disk (path, label, or UUID)
-D, --delete-boot-order
Delete boot order variables
-e ESP, --esp ESP
Specify EFI System Partition
-i
Print boot entry information
-l \EFI\path, --loader \EFI\path
Set loader file path
-L "label", --label "label"
Set boot entry label
-n NNNN, --bootnext NNNN
Set one-time BootNext entry
-N, --delete-bootnext
Delete BootNext variable
-o NNNN,..., --bootorder NNNN,...
Set BootOrder list
-O, --query-options
Print supported boot options
-p NN, --part NN
Specify partition number
-q, --quiet
Reduce output verbosity
-r PATH, --root PATH
Set root device (deprecated)
-t SEC, --timeout SEC
Set boot menu timeout
-u, --unicode
Pass ESC key to firmware
-v, --verbose
Verbose mode
-V, --version
Print version
-h, --help
Show help
-@ FILE
Read command-line args from file
DESCRIPTION
efibootmgr is a user-space application for managing UEFI (EFI) boot entries on Linux systems running in UEFI mode. It provides a command-line interface to view, create, delete, modify, and reorder boot menu entries stored in the EFI firmware's NVRAM variables, accessible via /sys/firmware/efi/efivars.
Primarily used in multi-boot environments, system recovery, or customizing boot order (e.g., prioritizing GRUB over Windows Boot Manager). The tool requires root privileges for modifications, as it interacts directly with EFI variables. Running without EFI firmware (efivarfs not mounted) will fail.
Common tasks include listing entries with -v, creating new ones specifying disk, partition, loader path (e.g., \EFI\ubuntu\shimx64.efi), and label, or setting one-time BootNext. It supports querying supported options, timeouts, and boot orders. Verbose output aids debugging boot issues.
efibootmgr ensures safe operations like testing creations without committing. It's essential for EFI-based installations, complementing bootloaders like GRUB or systemd-boot.
CAVEATS
Requires root privileges and EFI firmware support. Modifying boot entries risks unbootable systems; backup NVRAM first. Paths must use \ escapes. Limited to 128 chars for labels. Not for BIOS/Legacy mode.
COMMON USAGE
List entries: efibootmgr -v
Create Linux entry: efibootmgr --create --disk /dev/sda --part 1 --label "Linux Mint" --loader \\EFI\\mint\\shimx64.efi
Set order: efibootmgr -o 0000,0001
VERIFICATION
Mount efivarfs: mount -t efivarfs efivarfs /sys/firmware/efi/efivars. Check with lsblk -f for ESP.
HISTORY
Developed by Rod Smith (rbs@kernel.org) starting 2007. Integrated into major distros via efibootmgr package. Version 17 (2020) added ESP support, copy features. Maintained upstream at sourceforge.net/projects/efibootmgr.
SEE ALSO
efivar(8), efivars(8), grub-install(8), systemd-boot(7)


