Originally written: 3/14/2012; last Web page update:
-2/1/2014, referencing rEFInd 0.8.5
+10/9/2016, referencing rEFInd 0.10.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!
The support for booting legacy (BIOS) OSes on UEFI-based PCs
- currently has a number of limitations. Most importantly, it works
- off of the list of boot devices stored in the computer's NVRAM. I'd
- prefer to have it scan disks and partitions, as the Mac's legacy
- boot support does. Also, the UEFI legacy boot code presents empty
- optical drives and uses generic icons rather than OS-specific
- icons.
+
As described in reference to version 0.9.2 on the Revisions page, rEFInd includes a
+ delicate and hackish workaround to a problem introduced by Shim
+ 0.8. Developing a better solution to that problem is a high
+ priority.
+
+
rEFInd's Makefiles and, to a lesser extent, C code,
+ support x86, x86-64, and ARM64 CPUs. EFI is also
+ available for Itanium (IA-64) and ARM32 CPUs, so I'd like to add
+ this support.
-
Currently, rEFInd can detect whether it's compiled for x86
- or x86-64 systems and displays this information in its
- "About" screen (AboutrEFInd() in main.c). I'd
- like to add detection for Itanium and ARM systems, but I have no
- way to test such changes.
+
Currently, rEFInd can detect whether it's compiled for x86,
+ x86-64, or ARM64 systems and displays this information in
+ its "About" screen (AboutrEFInd() in main.c). I'd
+ like to add detection for Itanium and 32-bit ARM systems, but I
+ have no way to test such changes.
Further to the preceding, rEFInd's GPT-scanning code (used to
extract partition names) includes assumptions about byte order, and
@@ -217,6 +216,16 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
probably require identifying unique features of each version's boot
loader files or boot sector code.
+
The support for booting legacy (BIOS) OSes on UEFI-based PCs
+ currently has a number of limitations. Most importantly, it works
+ off of the list of boot devices stored in the computer's NVRAM. I'd
+ prefer to have it scan disks and partitions, as the Mac's legacy
+ boot support does. Also, the UEFI legacy boot code presents empty
+ optical drives and uses generic icons rather than OS-specific icons.
+ This said, BIOS support is becoming increasingly unimportant as the
+ transition from BIOS to EFI continues, so I'm unlikely to put effort
+ into this issue myself.
+
Known bugs that need squashing:
@@ -231,8 +240,20 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
removing rEFInd's drivers has caused the problem to go into
remission.
Another Mac-specific display problem relates to "retina" displays:
+ Some users report that rEFInd comes up in a lower resolution than
+ the screen supports, and that this setting persists into the running
+ OS X instance, and can't be adjusted using the usual OS X means.
+ Unfortunately, I lack the hardware necessary to experiment and find
+ a solution to this problem within rEFInd. Thus, a fix will have to
+ wait for me to get my hands on such hardware (which is not on my
+ immediate purchase list) or until somebody with such hardware and
+ the necessary skills submits a fix. (Note that a fix could
+ conceivably involve passing options to the OS X boot loader or
+ something else that would require trivial or no changes to
+ rEFInd.)
+
+
Some EFIs have bugs that cause the allegedly case-insensitive
StriCmp() function to perform a case-sensitive comparison.
This causes any number of bugs in file matching. For instance:
Changing the case of icon filename extensions (or various other
@@ -240,14 +261,10 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
"generic" ones; and rEFInd sometimes appears in its own menu (the
firmware sometimes returns an all-caps version of the filename, but
other times returns the filename with the correct case, causing a
- mismatch if the path includes lowercase elements). Some of these
- problems can be overcome by converting both strings to be compared
- to one case before doing the comparison, but others aren't so easy,
- since I think StriCmp() is being called internally to the
- EFI. In any event, it'd be nice to fix some of these problems.
- OTOH, this is a workaround for a bug on just one EFI
- implementation, and a dismal one at that, so I'm inclined to just
- let it go.
+ mismatch if the path includes lowercase elements). This problem is
+ worse when compiling rEFInd with GNU-EFI than with Tianocore.
+ Version 0.9.1 has made improvements on this score, but some issues
+ may continue to lurk.
The Shutdown option works correctly on Macs, but not on many UEFI-based
PCs. On such systems, Shutdown reboots the computer. This should be
@@ -269,12 +286,11 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
receiving a patch.
If you use a true MBR disk on a Mac to boot Windows or some other
- BIOS-only OS, and if that disk has an extended partition, that
- partition may show up in rEFInd as a bootable FAT partition. The
- reason is twofold: FAT doesn't contain a simple "magic" signature
- like most filesystems, so it's easy to misidentify something else
- as FAT; and it's hard to positively identify boot code vs. other
- random data.
+ BIOS-only OS, and if that disk has an extended partition, bogus
+ additional BIOS/legacy-bootable options may appear in the rEFInd
+ menu. The reason appears to be a bug in the handling of
+ extended/logical partitions in the refind/lib.c file, but
+ I haven't fully tracked it down.
The re-scan feature occasionally produces odd results, such as
ignoring new media or keeping old media that have been ejected.
@@ -329,18 +345,11 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
-
There's currently no way to create a manual boot stanza for a
- BIOS-booted OS. This isn't a big priority for me personally, but I
- can see how it could be for some people.
-
-
I've received queries about rEFInd's ability to work with Apple's
- whole-disk encryption scheme that's new with OS X 10.7.
- Unfortunately, I lack the hardware to test this, but my
- understanding is that it will work correctly if rEFInd is
- installed in the ESP rather than on the Mac OS X root partition.
- See this
- forum thread for more information.
+
Currently, debugging rEFInd requires adding Print()
+ statements to the code. Adding a logging facility that supports
+ multiple log levels and writes the output to a file would help with
+ debugging, especially when dealing with problem reports from
+ users.
I'd like to find a way to enable users to enter customizations for
boot options and then save them to the refind.conf file.
@@ -352,9 +361,14 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
detected boot programs and create a set of manual boot stanzas for
them, so that they can be modified manually.
-
Support for touchscreens and/or configurable buttons for rEFInd's
- actions would enable use of rEFInd on tablet computers that lack
- complete keyboards.
+
Better support for touchscreens and/or configurable buttons for
+ rEFInd's actions would enable use of rEFInd on tablet computers that
+ lack complete keyboards. (Version 0.10.4 supports some
+ touchscreens, but this feature relies on support in the firmware,
+ which is not universally present.)
+
+
The ability to rotate the display for users who rotate their
+ monitors or who use tablets would be helpful.
GRUB provides a configuration-file command called outb
that enables manipulating hardware registers. Something similar,
@@ -380,13 +394,19 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
loader settings—say, to disable one specific boot loader or
change its icon.
-
The ability to rotate the display for users who rotate their
- monitors would be helpful.
+
A GUI configuration tool for host OSes (Linux, OS X, Windows, etc.)
+ would be nice, but it's low on my personal priority list. If you'd
+ like to contribute, I prefer something written in a cross-platform
+ GUI toolkit, so that a single code base can be used on any of the
+ major OSes.
+
+
The ability to produce audio output (at least a simple "beep") to signal
+ to visually impaired users when rEFInd is ready to accept input would be
+ helpful.
-
A GUI configuration tool would be nice, but it's low on my personal
- priority list. If you'd like to contribute, I prefer something
- written in a cross-platform GUI toolkit, so that a single code base
- can be used on any of the major OSes.
+
There's currently no way to create a manual boot stanza for a
+ BIOS-booted OS. This isn't a big priority for me personally, but I
+ can see how it could be for some people.
Improvements to gptsync, refind-install, or other
support tools:
@@ -424,14 +444,6 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
under some circumstances, such as when it makes no changes to the
partition table. Fix this.
-
When updating a system with Secure Boot via an RPM or Debian
- package, the RPM installation script can detect rEFInd's existing
- shim or PreLoader program and pass options to install.sh
- to try to copy these programs over themselves. This results in a
- message that the copy was over the same file and an error message
- that there were problems with the installation, although this isn't
- really the case.
-
rEFInd's support for network booting is primitive and relies on the
external iPXE package. In my own testing, iPXE retrieves the
BIOS-mode boot loader from some servers that offer both, which
@@ -445,7 +457,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
-