# The rEFInd Boot Manager:
rEFInd Features

by Roderick W. Smith, rodsmith@rodsbooks.com

Originally written: 3/14/2012; last Web page update: 4/24/2016, referencing rEFInd 0.10.3

This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

Donate $1.00 | Donate $2.50 | Donate $5.00 | Donate $10.00 | Donate $20.00 | Donate another value

This page is part of the documentation for the rEFInd boot manager. If a Web search has brought you here, you may want to start at the main page.

rEFInd is a fork of the rEFIt boot manager. As such, it has many features in common with rEFIt. These include the following:

- Support for both text-mode and graphical operation.
- Auto-detection of EFI and BIOS boot loaders.
- User-configurable graphics and icons—you can set your own background, set new icons, and so on.
- Launch EFI boot loaders.
- Launch legacy (BIOS) boot loaders on Macs. (rEFInd also supports legacy boots on some UEFI PCs; see below.)
- Launch options for an external EFI shell or disk partitioner. (See the Installing rEFInd section for information on how to obtain and install these components.)
- Provide the `gptsync` utility for creating hybrid MBRs. Note that rEFInd's version of `gptsync` is significantly updated compared to rEFIt's. Also, this tool should be used only on Macs that dual-boot with a BIOS-based OS, such as Windows; or very rarely on other computers.
- Set OS-specific boot options, such as to launch Mac OS X with verbose text-mode debug messages.
- Load EFI drivers for filesystems or hardware devices not supported natively by your firmware. (This feature is absent in some builds of rEFIt and in rEFInd prior to version 0.2.7.)
- Inclusion of drivers for the Linux ReiserFS and ext2 filesystems in the main package. (These drivers are absent from rEFInd prior to version 0.4.0. See below concerning drivers for additional filesystems.)

rEFInd expands on rEFIt by providing features that improve on or go beyond those of rEFIt, such as:

- Bug fixes, focusing on those that have bothered me personally.
- The ability to specify a configuration file to use at program launch time via the `-c `filename`` command-line option.
- User-configurable methods of detecting boot loaders:
  - Auto-detection of EFI boot loaders, independently on internal hard disks, external hard disks, optical discs, and network boot loaders.
  - Auto-detection of legacy BIOS boot loaders, independently on internal hard disks, external hard disks, and optical discs.
  - Manually via the configuration file
  You can select which of these methods to use to construct the rEFInd main boot menu. Although rEFIt supports auto-detection, it does not support manual configuration; and rEFIt's options to enable, disable, and prioritize individual boot loader detection methods are primitive compared to those in rEFInd.
- Beginning with rEFInd 0.8.4, experimental network boot loader support via the iPXE EFI binaries. When activated, rEFInd should add a network-boot option to its menu when a suitable network boot server is available.
- Support for launching legacy BIOS boot loaders on UEFI PCs with suitable CSM support (as of version 0.4.6, with significant improvements in version 0.8.0). Note that some UEFI PCs, such as those with Gigabyte's Hybrid EFI, lack a usable CSM.
- Improved flexibility in setting the default OS to boot. rEFInd enables specifying the default by any substring in the description. You can also specify multiple defaults, so that if the first isn't available, another will take its place (which is useful when using removable disks). You can also add time specifications to set a default to be used only during certain hours of the day. If no default loader is set, rEFInd defaults to the last-booted loader.
- Support for partition names or GUID values as fallbacks for filesystem labels in certain configuration file settings. Partition names may be shown as values to be displayed as part of the descriptive text for boot tags on the main menu, too, if a filesystem has no label.
- The ability to fine-tune options passed to EFI boot loaders, via manual configuration.
- An option editor to enable you to edit the options passed to an EFI boot loader on a per-boot basis.
- The ability to specify additional directories to scan for boot loaders and drivers (as of version 0.2.7).
- The ability to specify volumes and directories to not be scanned for boot loaders, even if they would ordinarily be scanned (as of version 0.6.0 for volumes and 0.4.2 for directories).
- The ability to re-scan boot loaders, to assist when changing removable media or after making a change to the configuration file with an EFI shell (as of version 0.3.5).
- A configurable delay before scanning for boot loaders, for systems on which there's a delay before disks become available (as of version 0.4.6).
- The ability to specify an additional icon storage directory, to assist in efforts to customize rEFInd's appearance (as of version 0.3.4).
- Support for icons, selection backgrounds, and banner graphics in PNG format, in addition to the ICNS and BMP formats supported by rEFIt.
- Support for full-screen banner images.
- Support for scaling icons, to adjust icon size for users with high-resolution displays, poor eyesight, or simply for personal preference reasons.
- The ability to set the screen's graphics resolution, within limits imposed by the EFI (as of rEFInd 0.3.0). Similarly, as of version 0.6.0, you can specify the text-mode resolution.
- Proper handling of more OS options than can fit on the screen. (rEFIt displays an empty list in graphical mode when it detects too many OSes.)
- Additional OS icons (most of which are Linux distributions, at least so far). This can make it easier to find a specific distribution in the boot list if you've installed multiple Linux distributions.
- Beginning with version 0.6.6, support for loading user-defined fonts, in the form of PNG files containing ASCII characters 32 through 126 plus a glyph to be used for values outside that range.
- The ability to auto-detect Linux initial RAM disk files and to read Linux kernel options from a `refind_linux.conf` file. These features support (nearly) automatic handling of Linux kernels with embedded EFI stub loader support (a new feature with Linux 3.3.0).
- The ability to "fold" multiple Linux kernels into a single entry in the main menu. Additional kernels appear as options in the submenu. This feature is enabled by default, but can be disabled by setting `fold_linux_kernels false` in `refind.conf`.
- In the absence of a `refind_linux.conf` file, the ability to pass minimal Linux boot options to a kernel based on the contents of `/etc/fstab`. This is limited to cases in which the kernel resides on the Linux root (`/`) filesystem, though, and it won't work if the installation requires any unusual options.
- As of rEFInd 0.9.0, if a Linux root (`/`) filesystem is identified by the type code specified by the Discoverable Partitions Specification (DPS) and the root filesystem cannot be identified via `refind_linux.conf` or `/etc/fstab`, rEFInd passes a kernel `root=` identifier based on the identified DPS root (`/`) type code.
- Fixes to display problems on many UEFI-based PCs.
- Beginning with version 0.6.10, a screen saver feature, activated by the `screensaver `seconds`` token in `refind.conf`: Set `seconds` to the number of seconds before the screen will blank to prevent burn-in.
- Workarounds to file detection bugs in at least one type of UEFI firmware.
- Improved detection of itself, to keep rEFInd out of its own boot menu.
- Detection of a fallback boot loader (`EFI/BOOT/bootx64.efi` or `EFI/BOOT/bootia32.efi`) that's redundant with another boot loader, to keep the fallback boot loader out of menus when it's unnecessary.
- An "exit" option (disabled by default), so that you can return to whatever shell or boot manager you used to launch rEFInd, should this ability be desirable. (This feature first appeared in rEFInd 0.2.4.)
- Drivers for ISO-9660, NTFS, HFS+, ext4fs, and Btrfs, which are not included in rEFIt. The ISO-9660 driver is based on code from the rEFIt project, but was never completed by its original author. It was completed by Oracle for VirtualBox. The ext4fs driver is derived from the rEFIt ext2fs driver, and the Btrfs and NTFS drivers are derived from the rEFIt and GRUB 2.0 driver code.
- Beginning with version 0.5.0, the ability to "talk" to the shim boot loader to validate binaries supported by shim or its machine owner key (MOK) list when booting with Secure Boot active.
- The `gptsync` utility, included with rEFInd 0.6.9 and later, has safety checks to prevent creating a fresh hybrid MBR if the MBR side has been adjusted without adjusting the GPT side—a common source of problems. This update also prioritizes partition inclusion in the hybrid MBR, which can help on disks that have many partitions. OTOH, as of rEFInd 0.6.9, this version of `gptsync` is relatively untested.
- The ability to set the VMX bit on certain Intel CPUs. This feature is necessary for certain virtualization tools, such as Hyper-V, and not all EFIs enable users to set it.
- Beginning with version 0.10.0, the ability to spoof the booting of OS X when booting non-Apple OSes. This changes the way a Mac's EFI initializes hardware, which can get secondary video chipsets working on some Macs. This feature is controlled via the `spoof_osx_version` token in `refind.conf`.
- Beginning with version 0.10.0, the ability to adjust Apple System Integrity Protection (SIP; aka "rootless" or "CSR") settings. These settings control what features are off-limits even to `root` in OS X 10.11 (El Capitan) and later. To use this feature, you must set specific CSR values on `refind.conf`'s `csr_values` line and add `csr_rotate` to the `showtools` line.
- Beginning with version 0.10.1, support for ARM64 (aka AARCH64 or AA64) CPUs. Such systems that boot using UEFI are quite rare, at least in December of 2015.

On the flip side, at least for Mac users, rEFInd comes with less sophisticated Mac installation tools than does rEFIt, in favor of more OS-agnostic packaging.

If these features sound useful, then read on and try rEFInd. If not, you may need to look elsewhere. My Managing EFI Boot Loaders for Linux page may be useful to you in this case.

copyright © 2012–2016 by Roderick W. Smith

This document is licensed under the terms of the GNU Free Documentation License (FDL), version 1.3.

If you have problems with or comments about this Web page, please e-mail me at rodsmith@rodsbooks.com. Thanks.

Go to the main rEFInd page

Learn how to obtain rEFInd

Return to my main Web page.