Updated: 2025/Nov/16
Please read Privacy Policy. It's for your privacy.
EFI(8) System Manager's Manual EFI(8)
NAME
efi - UEFI variable editor
SYNOPSIS
efi [-CcDFfhNOqrTVvy] [--brief] [--debug[=num]] [-@ file] [-A [hexnum]]
[-a [hexnum]] [-B [hexnum]] [-b hexnum] [-d disk] [-G [dev]]
[-L label] [-l loader] [-n hexnum] [-o hexnum[,hexnum ...]] [-p num]
[-R regexp] [-t seconds] [-w [sig]] [-X hexnum[,hexnum ...]]
[-x hexnum[,hexnum ...]]
DESCRIPTION
efi can display all UEFI variables visible at runtime. It can also
create, modify, and delete boot related variables such as Boot####,
BootOrder, BootNext, Driver####, DriverOrder, SysPrep####, and
SysPrepOrder. It is designed to be API compatible with efibootmgr in
Linux, so that grub can be installed from NetBSD. Future features may be
coming.
Many efi options require a number (####) indicating which "Boot####"
argument to modify. Many options take this as an argument, but it can
also be set with the -b option. Note that the boot number is a
hexadecimal in the range of 0 to 0xFFFF. It need not have a leading `0x'
prefix and it need not be zero padded to 4 hexdigits. By default, the
boot number specifies the "Boot####" variable, but the -r and -y options
can override this so that it applies to the "Driver####" and
"SysPrep####" variables.
The following options are currently available:
--brief Only show the variable name, UUID, attributes, and datasize
that appear in the efi_var_ioc data structure (see
<sys/efiio.h>). This is used when the structure of the data
is not known by efi.
--debug[=num]
Increment the debug level or set it to num when given. Its
value is bit-mapped:
Bit(0): Show data structure.
Bit(1): Show raw data.
Bit(2): Show efi_var_ioc structure info (see --brief).
-@, --append-binary-args
Append content of file (use `-' for stdin) to the variable
data. This data is passed to the boot loader on its command
line.
-A, --inactive [####]
Set given Boot#### variable inactive.
-a, --active [####]
Set given Boot#### variable active.
-B, --delete-bootnum [####]
Delete the Boot#### variable.
-b, --bootnum ####
Specify the boot number (i.e., the #### in Boot####) to use
with other options.
-C, --create-only
Create a new Boot#### variable.
-c, --create
Same as -C, but add the bootnum to the bootorder.
-D, --remove-dups
Remove any duplicate BootOrder entries, retaining the first
one in the list.
-d, --disk [dev]
Specify the device containing the boot loader. The default
is the device containing the current directory.
-F, --no-reconnect
Do not force a devices reconnect after loading a driver.
-f, --reconnect
Force a reconnect of devices after loading a driver. This
has no effect for non-Driver#### variables.
-G, --show-gpt [dev]
Show the GPT for the specified device. The default is the
device containing the current directory. This currently
assumes a widescreen for a readable display.
-L, --label LABEL
Label name displayed by the boot manager. Defaults to
`NetBSD'.
-l, --loader NAME
Pathname of the boot loader relative to the specified
partition. Defaults to \EFI\NetBSD\grub.efi. Note: EFI
partitions are usually formatted as MSDOS partitions. Hence,
the file separator is a backslash and may need to be escaped
from the shell.
-N, --delete-bootnext
Delete the BootNext variable.
-n, --bootnext ####
Set the BootNext variable to Boot####.
-O, --delete-bootorder
Delete the BootOrder variable.
-o, --bootorder ####[,#### ...]
Set the BootOrder variable. The argument is a non-empty
comma separated list of hex values. The hex values can range
from 0 to FFFF and should correspond to one of the Boot####
variables.
-p, --part PART
Specify the partition index on the device that contains the
bootloader binary. Normally, this is the 'EFI' partition.
The default is partition index 1.
-q, --quiet
Run quietly -- no output. (XXX: not yet).
-r, --driver
Operate on Driver#### variables instead of Boot####
variables.
-T, --delete-timeout
Delete Timeout variable.
-t, --timeout secs
Set the boot manager Timeout variable, in seconds.
-V, --version
Print version string and exit. To keep grub-install happy,
this is currently set to version 18.
-v, --verbose
Increment verboseness. This may be used multiple times. It
is also passed directly to the GPT routines used by the -G
and -w options.
-w, --write-signature [sig]
For MBR disks: If the MBR partition is missing a signature
(i.e., is zero), set it to a random value. If the sig
argument is specified, then set the MBR signature to that
value overriding any previous setting. The signature is a
four byte value and can be specified in hex, octal, or
decimal. This takes precedence over all other options except
-c.
-X, --remove-bootorder ####[,#### ...]
Remove argument(s) from the BootOrder variable.
-x, --prefix-bootorder ####[,#### ...]
Prefix argument(s) to the BootOrder variable.
-y, --sysprep
Operate on SysPrep#### variables instead of Boot####
variables.
IMPLEMENTATION NOTES
efi requires kernel EFI runtime support and the device /dev/efi.
Currently, efi only runs on little-endian machines, as required by the
UEFI specification.
As of grub-install 2.12, the following efibootmgr options are used (see
grub-2.12/grub-core/osdep/unix/platform.c):
-B
-L efi_distributor
-b bootnum
-c
-d efidir_disk
-l efifile_path
-p efidir_part_idx
-q
-w
--version
Currently, the following efibootmgr options are not implemented in efi:
-E, --edd-device
-e, --edd
-e, --edd30
--file-dev-path
--full-dev-path
-g, --gpt
-i, --iface
-M, --mirror-above-4G
-m, --mirror-below-4G
-u, --unicode, --UCS-2
The following options in efi are not in efibootmgr:
--brief
--debug
-G, --show-gpt
-X, --remove-bootorder
-x, --prefix-bootorder
In addition, several of the supported efibootmgr options now take
optional arguments or comma delimited hex number arguments for
convenience.
SEE ALSO
gpt(8)
STANDARDS
efi attempts to follow version 2.10 Errata A (Aug 8, 2024) of the UEFI
Specification (http://uefi.org).
HISTORY
efi was intended to be a NetBSD replacement for efibootmgr in Linux. The
later is required by grub-install in the grub package. As a result, the
interface is the same with a few exceptions. For efi to be used with
grub-install it obviously needs to be renamed or linked to efibootmgr.
BUGS
Probably way too many to list. Currently, efi has had very limited
testing. Use it at your own risk!
NetBSD 11.99 February 23, 2025 NetBSD 11.99