REFInd

rEFInd is Article description::a boot manager for EFI and UEFI platforms forked from and successor to rEFIt. It provides a graphical interface for launching EFI-based operating systems and accessing EFI-based utilities.

USE flags
rEFInd has optional support for scanning several filesystems for EFI executables before loading the operating system. This allows to keep the kernels outside of the EFI System Partition (ESP) but needs the rEFInd built with the respective USE flags enabled.

Installation with NVRAM modification
Once the rEFInd package has been emerged, a second step is needed to install the binaries to the ESP. If an ESP does not exist, one needs to be created. See EFI System Partition. It is advisable to set its mountpoint to.

The rEFInd package comes with the command. Running it will
 * Automount the ESP according to EFI_System_Partition
 * Install its application and other stuff into the ESP
 * Call efibootmgr to set itself as the default boot manager.

Boot000x* can vary depending on existing entries.

Installation to the EFI Default/Fallback path
You can install rEFInd to a disk using the default/fallback filename of. Your computer's NVRAM entries will not be modified when installing in this way. Most EFI and UEFI firmware support a fallback EFI image to boot from if the configured EFI file cannot be found, and some will also override the configured boot selection if the fallback boot image is found. This can be used to boot into EFI mode when doing so otherwise is difficult.

Where is your EFI System Partition. This installation method can be used as either a permanent setup to create a bootable USB flash drive or install rEFInd on a computer that tends to "forget" its NVRAM settings or as a temporary bootstrap to get the system to boot in EFI mode.

Kernel image at EFI System partition
rEFInd detects and displays an icon appropriate for the operating system kernel based on the directory it is in. To display a nice Gentoo logo, move the kernel (and initramfs if required) to.

Kernels and initramfs go into their EFI subdirectory:

Alternatively, kernels (and initramfs if in use) may be kept in. As previously stated, when used with the appropriate filesystem driver, rEFInd can scan the root partition for suitable Linux kernels to boot.

Kernel image outside EFI System partition
To simplify kernel updates, you can use features of the installkernel script, which is part of the package:

As the EFI System partition's filesystem doesn't support symlinks, which will be updated by installkernel script, we will use default directory outside the EFI System partition (e.g. root partition with EXT4 filesystem).

Umount, and navigate to your default directory, where you will store the kernels images:

As the installkernel script only update symlinks, we need to create it first:

As result, we created initial symlinks, pointed to the current kernel version. You could replace the part with kernel version of your choice.

Now mount EFI System partition:

And update in the ː

Next time, if you call when installing new kernel image, the installkernel script will update symlinks at your  directory automatically and point vmlinuz, config, System.map symlinks to current version of the kernel, also, it will update vmlinuz.old, config.old, System.map.old symlinks and point it to previous version of the kernel and you don't need to update rEFInd config file or NVRAM to use new version of the kernel.

Different boot configurations
Also different boot configurations can be specified to appear as different menu options within the rEFInd menu. This is done by creating the file with a menu title and the matching cmdline options on each line.

The main selection screen for rEFInd will use the first option as the default option, however alternate boot entries can be accessed by highlighting your kernel and pressing. You can also modify cmdline on-the-fly by pressing on a menu item to open it in an editor. When ready, press to boot the kernel.

External resources

 * rEFInd SourceForge repository
 * Upstream installation instructions
 * Kernel parameters - explained on wiki.archlinux.org
 * SystemRescue CD