The rEFInd Boot Manager
Originally written: 3/14/2012; last Web page update: 11/12/2018, referencing rEFInd 0.11.4
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!
This page describes rEFInd, my fork of the rEFIt boot manager for computers based on the Extensible Firmware Interface (EFI) and Unified EFI (UEFI). Like rEFIt, rEFInd is a boot manager, meaning that it presents a menu of options to the user when the computer first starts up, as shown below. rEFInd is not a boot loader, which is a program that loads an OS kernel and hands off control to it. (Since version 3.3.0, the Linux kernel has included a built-in boot loader, though, so this distinction is rather artificial these days, at least for Linux.) Many popular boot managers, such as the Grand Unified Bootloader (GRUB), are also boot loaders, which can blur the distinction in many users’ minds. All EFI-capable OSes include boot loaders, so this limitation isn’t a problem. If you’re using Linux, you should be aware that several EFI boot loaders are available, so choosing between them can be a challenge. In fact, the Linux kernel can function as an EFI boot loader for itself, which gives rEFInd characteristics similar to a boot loader for Linux. See my Web page on this topic for more information.
In theory, EFI implementations should provide boot managers. Unfortunately, in practice these boot managers are often so poor as to be useless. The worst I’ve personally encountered is on Gigabyte’s Hybrid EFI, which provides you with no boot options whatsoever, beyond choosing the boot device (hard disk vs. optical disc, for instance). I’ve heard of others that are just as bad. For this reason, a good EFI boot manager—either standalone or as part of a boot loader—is a practical necessity for multi-booting on an EFI computer. That’s where rEFInd comes into play.
I decided to fork the earlier rEFIt project because, although rEFIt is a useful program, it’s got several important limitations, such as poor control over the boot loader detection process and an ability to display at most a handful of boot loader entries on its main screen. Christoph Pfisterer, rEFIt’s author, stopped updating rEFIt with version 0.14, which was released in March of 2010. Since I forked rEFIt to rEFInd, Christoph has begun pointing rEFIt users to rEFInd as a successor project.
As already noted, rEFInd is a boot manager for EFI and UEFI computers. (I use “EFI” to refer to either version unless the distinction is important.) You’re likely to benefit from it on computers that boot multiple OSes, such as two or more of Linux, Mac OS X, and Windows. You will not find rEFInd useful on older BIOS-based computers or on systems with other types of firmware, such as older PowerPC-based Macs. Prior to mid-2011, few computers outside of Intel-based Macs used EFI; but starting in 2011, computer manufacturers began adopting UEFI in droves, so most computers bought since then use EFI. Even so, many modern PCs support both EFI-style booting and BIOS-style booting, the latter via a BIOS compatibility mode that’s known as the Compatibility Support Module (CSM). Thus, you may be using BIOS-style booting on an EFI-based computer. If you’re unsure which boot method your computer uses, check the first of the subsections, What’s Your Boot Mode.
Subsequent sections of this document are on separate pages. Be aware that you probably don’t need to read them all; just skip to the sections that interest you:
Note: I consider rEFInd to be beta-quality software! That said, rEFInd is a usable program in its current form on many systems. If you have problems, feel free to drop me a line.
- What’s Your Boot Mode?—Information to help you determine whether you’re using EFI or BIOS booting
- rEFInd Features—An overview of rEFInd’s features
- Getting rEFInd—Links to download rEFInd
- Installing rEFInd—Instructions for installing rEFInd, using Linux, OS X, and Windows
- Keeping rEFInd Booting—Instructions for keeping rEFInd in charge of the boot process or recovering when another OS takes control
- rEFInd and OS X 10.10 (Yosemite)—Apple’s OS X 10.10 makes some changes that require your attention (this subpage is rendered obsolete by rEFInd 0.8.4 and later)
- rEFInd and System Integrity Protection—How to install rEFInd on Macs running OS X 10.11 (El Capitan)
- Using rEFInd—Basic usage instructions for the boot loader
- Configuring the Boot Manager—For advanced users, information on customizing a rEFInd installation
- Using EFI Drivers—Why and how to have rEFInd launch EFI drivers
- Theming rEFind—Information on third-party themes for rEFInd
- Options for Booting Linux—Methods of booting Linux, particularly with the EFI stub loader (distribution maintainers should read this!)
- Managing Secure Boot—Some pointers on using rEFInd on a computer with Secure Boot active
- Revisions—Information on the history of rEFInd releases
- The Future of rEFInd—Current bugs that need squashing and features that I hope to one day add
- Manual (man) pages for rEFInd support scripts:
- mkrlconf—This Linux-only tool creates a /boot/refind_linux.conf file to hold Linux kernel options.
- mvrefind—This Linux-only script moves a rEFInd installation from one location to another on the EFI System Partition (ESP).
- refind-install—This Linux and OS X script installs rEFInd with minimal fuss.
- refind-mkdefault—This Linux script makes rEFInd the default boot program with minimal fuss.
References and Additional Information
- Informational Web pages
- The EFI Boot Process describes, in broad strokes, how EFI systems boot.
- The EFI System Partition and the Default Boot Behavior covers the EFI boot process in more technical terms and in greater detail, as well as how Fedora’s fallback.efi program works.
- A Linux kernel mailing list thread describing the new EFI stub loader that was introduced in the Linux 3.3 kernel series.
- The Arch Linux UEFI wiki page has a great deal of information on UEFI and Linux.
- My own EFI Boot Loaders for Linux page provides information on installing and configuring several common Linux EFI boot loaders and boot managers.
- My Linux on UEFI: A Quick Installation Guide page provides helpful tips on how to install Linux on EFI-based systems.
- Phoenix Technologies maintains a wiki on EFI topics, including information on many EFI system calls useful to programmers.
- Matthew J. Garrett, the developer of the shim boot loader to manage Secure Boot, maintains a blog in which he often writes about EFI issues.
- Adam Williamson has written a good summary of what EFI is and how it works.
- J. A. Watson has a review of rEFInd on an HP laptop on ZDNet. He had serious problems because of the HP’s UEFI bugs, but finally got it to work.
- James Jesudason has a tutorial on installing Ubuntu 13.04 beta on a Macbook Retina Pro on this blog page. I’d recommend using a Linux filesystem driver to read the kernel directly from a Linux filesystem rather than copy the kernel to the OS X partition as in the tutorial, but either method will work.
- The Windows MBR2GPT utility, part of Windows 10 Creator’s Update, can convert a Windows computer that boots in BIOS mode from an MBR disk to one that boots in EFI mode from a GPT disk. Note that I’ve never used this tool, and I have no idea how it would cope with a multi-boot configuration.
- If you’re interested in developing EFI software yourself, my Programming for EFI can help you get started.
- This page describes how to set up a multi-boot of five Linux distributions and Windows using rEFInd. The method described was sub-optimal in a few ways (such as re-installing rEFInd in each distribution rather than using refind-mkdefault to adjust the boot order), but it does work.
- Additional programs
- The official rEFIt Web page
- The official gummiboot Web page
- The official ELILO Web page
- The official GRUB Web page
- The official GPT fdisk partitioning software Web page
- The Clover boot loader is a Hackintosh boot loader that incorporates, among other things, its own unique forks of rEFIt and of DUET (a TianoCore tool to boot UEFI on BIOS-based computers).
- Pete Batard’s efifs project aims to port GRUB’s filesystem drivers to function as standalone EFI filesystem drivers. It’s currently a work in progress but shows great promise, and several drivers are usable for limited purposes today.
- The rEFInd discussion forum on Sourceforge provides a way to discuss rEFInd with other users or with me.
- You can e-mail me with queries or bug reports.
- This thread on MacRumors details efforts to boot Windows 7 and Windows 8 in EFI mode, rather than using Boot Camp, on 64-bit Macs. It can be done with some models, but is difficult, particularly for Windows 7. Be aware that the thread is long and has many false leads.
copyright © 2012–2018 by Roderick W. Smith
This document is licensed under the terms of the GNU Free Documentation License (FDL), version 1.3.