rEFInd – EFI boot manager

rEFInd is a boot manager, meaning that it presents a menu of options to the user when the computer first starts up. rEFInd is not a boot loader.

rEFInd is a fork of the rEFIt boot manager. Like rEFIt, rEFInd can auto-detect your installed EFI boot loaders and it presents a pretty GUI menu of boot options. rEFInd goes beyond rEFIt in that rEFInd better handles systems with many boot loaders, gives better control over the boot loader search process, and provides the ability for users to define their own boot loader entries.

rEFInd is free and open source software.

Features include:

  • 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 macOS with verbose text-mode debug messages.
  • Load EFI drivers for filesystems or hardware devices not supported natively by your firmware.

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

  • Bug fixes.
  • 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.

  • 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. 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.
  • The ability to specify volumes and directories to not be scanned for boot loaders, even if they would ordinarily be scanned.
  • The ability to specify boot loader files to be ignored. This can be set either in the configuration file or dynamically as you’re using rEFInd.
  • 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.
  • A configurable delay before scanning for boot loaders, for systems on which there’s a delay before disks become available.
  • The ability to specify an additional icon storage directory, to assist in efforts to customize rEFInd’s appearance.
  • Support for icons, selection backgrounds, and banner graphics in PNG and JPEG formats, 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.
  • Set the screen’s graphics resolution, within limits imposed by the EFI. 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).
  • The ability to handle some (but not all) touch-screen displays, as used on tablet computers.
  • On some (but not all) computers, the ability to handle mouse input to select the boot loader to run.
  • 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.
  • 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.
  • 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.
  • “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.
  • 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.
  • 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.
  • 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.
  • Drivers for ISO-9660, NTFS, HFS+, ext4fs, and Btrfs, which are not included in rEFIt. (The NTFS driver has proven troublesome, and so is not compiled by default.) 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.
  • 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 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. Prioritizes partition inclusion in the hybrid MBR, which can help on disks that have many partitions. This version of gptsync is relatively untested.
  • 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.
  • Ability to spoof the booting of macOS 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.
  • Adjust Apple System Integrity Protection (SIP; aka “rootless” or “CSR”) settings. These settings control what features are off-limits even to root in macOS 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.
  • Support for ARM64 (aka AARCH64 or AA64) CPUs. Such systems that boot using UEFI are quite rare, at least in December of 2015.

Developer: Roderick W. Smith
License: BSD License, GNU General Public License version 3.0

rEFInd is written in C. Learn C with our recommended free books and free tutorials.

Return to Boot Utilities Home Page

Popular series
Guide to LinuxNew to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.
Free and Open Source SoftwareThe largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions.
ReviewsHundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.
Alternatives to Proprietary SoftwareReplace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS.
DockerGetting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.
System ToolsEssential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.
ProductivityLinux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.
Home ComputersHome computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.
Now and ThenNow and Then examines how promising open source software fared over the years. It can be a bumpy ride.
Linux at HomeLinux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.
Linux CandyLinux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.
Android AppsBest Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.
Programming BooksThese best free books accelerate your learning of every programming language. Learn a new language today!
Programming TutorialsThese free tutorials offer the perfect tonic to our free programming books series.
Stars and StripesStars and Stripes is an occasional series looking at the impact of Linux in the USA.
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.