any later version
refind-mkdefault - Set rEFInd as the default EFI boot option
[ -L|--label <name> ]
EFI booting normally relies on boot manager entries stored in NVRAM, which
describe the locations of EFI boot programs and the order in which the
firmware will attempt to launch them. In Linux, these entries can be created,
deleted, and manipulated with the efibootmgr
Many OSes and Linux packages assume that they should control the boot process,
and so both create NVRAM boot entries for themselves and set these entries
first in the boot order. If you intend rEFInd to control the boot process,
though, such changes are undesirable and require adjustment via
. Such adjustments are annoying to make and can be
intimidating to non-experts.
script simplifies matters: Running this script with
no options sets rEFInd as the default boot program. The details of what the
script does depends on the current state of the boot order list and existing
- If a rEFInd entry already exists in the boot order and is
already first in the list, no changes are made.
- If a rEFInd entry already exists in the boot order but is
not first in the list, that entry is moved to the first position in the
- If more than one rEFInd entry exists in the boot order,
refind-mkdefault moves the one that comes earliest to the front of
the boot order list.
- If no rEFInd entry exists in the boot order but a rEFInd
boot entry can be found in the list of Boot#### entries, it is
added to the boot order and placed at the front of the list.
- If multiple rEFInd boot entries exist but none is in the
boot order, all the entries are added to the boot order, but which one is
first is uncontrolled.
A rEFInd entry is defined as one that contains the string refind
(case-insensitive). This string could exist in the description or in the
filename. The string used to define the rEFInd entry can be changed via the
The intent is that refind-mkdefault
can be called after booting via GRUB
or some other means to restore rEFInd as the default boot program. It can also
be placed in a startup and/or shutdown script to restore rEFInd to its default
position automatically. Because it does not re-write the boot order if rEFInd
is listed as the first boot entry, this practice should be low in risk.
- -L | --label <name>
- Instead of searching for the string refind in
efibootmgr output as a way to identify rEFInd, search for the
returns the following values:
- The script completed successfully, which can mean either
that no change was necessary or that the call to efibootmgr
returned a success code.
- EFI boot order variables are available, and a rEFInd entry
was found, but the call to efibootmgr returned a failure code.
- EFI boot entries are not available. This condition is often
an indication of a buggy EFI or badly damaged NVRAM contents.
- No rEFInd entry could be found in the list of boot options,
and so no changes were made to the boot order list.
- The script could not run because of OS issues -- the OS was
not Linux, the efibootmgr utility was not available, or the script
was not run as root.
- refind-mkdefault does not work when booted in BIOS
mode (including via a Compatibility Support Module, or CSM, on an
EFI-based computer). Similarly, it does not work if efibootmgr is
not installed or fails to work for any reason.
- The script uses a very simple algorithm to determine what
to move to the start of the boot order list. This algorithm may fail if
the system has redundant or non-functional rEFInd boot entries or if those
entries are not named in an expected fashion. Cleaning up the boot entries
by manual use of efibootmgr may be necessary in such cases.
Primary author: Roderick W. Smith (firstname.lastname@example.org)
, mkrlconf (8)
, refind-install (8)
command is part of the rEFInd
package and is
available from Roderick W. Smith.