href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-5/20/2012, referencing rEFInd 0.4.0</p>
+11/6/2012, referencing rEFInd 0.4.7</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. 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!</p>
<ul>
+ <li>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.</li>
+
<li>Currently, rEFInd can detect whether it's compiled for <i>x</i>86
or <i>x</i>86-64 systems and displays this information in its
"About" screen (<tt>AboutrEFInd()</tt> in <tt>main.c</tt>). I'd
from the partition data is harder than extracting the volume's
label or counting up the filesystem numbers.</li>
+ <li>The default_selection option in refind.conf could be improved by
+ supporting a list of default options, so that if the first item
+ isn't found, rEFInd will try to boot the second one in the list,
+ and so on. This could be handy in case a driver fails to load, or
+ to provide an override in case the user inserts a specific
+ removable disk—by placing the removable disk's name first in
+ the list, it will take precedence over the normal hard disk
+ default.</li>
+
+ <li>Along the lines of the previous item, the default_selection might
+ be expanded to support some form of specification of disk types, as
+ in a special entry for any optical disk or any external disk, no
+ matter what its name is.</li>
+
<li>It would be useful to be able to specify paths to boot loaders
and/or initial RAM disks relative to the rEFInd directory (or the
boot loader's directory, in the case of initrds).</li>
+ <li>Various options (<tt>dont_scan_dirs</tt>, <tt>also_scan_dirs</tt>,
+ <tt>scan_driver_dirs</tt>, etc.) refer to directories or files,
+ either on the ESP or on all partitions. A way to identify specific
+ partitions for these options would be useful in some
+ situations.</li>
+
</ul></li> <!-- Improvements -->
<li><b>Known bugs that need squashing:</b>
<ul>
- <li>I'd like to find a way to get rEFInd to launch BIOS boot loaders on
- UEFI-based systems. This option currently works only on
- Macs—or at least, I've not gotten it to work on any of my
- UEFI-based PCs. (I've done some experiments to try to get this to
- work, but so far without success. If you'd like to help on this, <a
- href="mailto:rodsmith@rodsbooks.com">e-mail me</a> for my
- thoughts.)</li>
+ <li>When in Secure Boot mode, rEFInd can launch just one driver that's
+ signed with a shim key or MOK. The second and later drivers
+ generate "access denied" errors. <!-- I think this is because of
+ the fast-and-loose sample code I borrowed from shim, which re-uses
+ rEFInd's own image handle (the <tt>image_handle</tt> variable in
+ <tt>start_image()</tt>) for launching shim/MOK-signed binaries. The
+ result is that when the second driver is loaded, it can't register
+ itself with the firmware because the firmware believes it's already
+ been registered. The solution is likely to involve creating a child
+ image handle rather than re-using rEFInd's own image handle, but
+ this is likely to be tedious to do—see
+ <tt>/usr/local/UDK2010/MyWorkSpace/MdeModulePkg/Core/Dxe/Image/Image.c</tt>
+ for the reference UEFI implementation. --> </li>
<li>The <a href="http://www.rodsbooks.com/gb-hybrid-efi/">Gigabyte
Hybrid EFI</a> has a bug that causes the allegedly case-insensitive
implementation, and a dismal one at that, so I'm inclined to just
let it go.</li>
- <li>The Shutdown option works correctly on Macs, but not on UEFI-based PCs.
- On such systems, Shutdown reboots the computer. This should be
- fixed.</li>
+ <li>The Shutdown option works correctly on Macs, but not on UEFI-based
+ PCs. On such systems, Shutdown reboots the computer. This should be
+ fixed.</li>
<li>The media-ejection feature (F12) should be extended to work on
UEFI-based PCs and early Macs. At the moment, it relies on an
ignoring new media or keeping old media that have been ejected.
This should be investigated and fixed.</li>
- <li>The re-scan feature renders the user interface immobile until
- the re-scan is complete. This is usually just a second or two,
- but it can be longer if an optical disc needs to be spun up.
- Adding a temporary "scanning media" notice would be helpful.</li>
+ <li>The "scanning for new boot loaders" message that appears during the
+ re-scan feature is primitive. Some sort of dynamic icon would be
+ nice, but perhaps impractical, given the single-tasking nature of
+ EFI.</li>
+
+ <li>On my Mac Mini, launching a shell, returning, and performing a
+ re-scan causes the system to be unable to launch the shell again. I
+ have not observed this behavior on UEFI-based PCs. It seems to be
+ caused by a truncated DevicePath to the shell, which includes the
+ shell's pathname but not the device identifier.</li>
<li>The code is in need of review to search for memory leaks and
- similar problems.</p>
+ similar problems.</li>
</ul></li> <!-- Known bugs -->
<ul>
+ <li>With the arrival of PCs preloaded with Windows 8 and with Secure
+ Boot enabled, some way to cope is in order. I'm thinking of adding
+ code to limit or prohibit booting of unsigned boot loaders if
+ rEFInd detects that Secure Boot is active, and link with the <a
+ href="http://mjg59.dreamwidth.org/18945.html">Shim</a>
+ pre-bootloader to help handle signing and authentication. I need to
+ research the technical details more, though.</li>
+
<li>EFI supports network boots. rEFInd doesn't, but it would be nice if
it would.</li>
forum thread</a> for more information.</li>
<li>I'd like to find a way to enable users to enter customizations for
- boot options and then save them to the <tt>refind.conf</tt>
- file.</li>
+ boot options and then save them to the <tt>refind.conf</tt> file.
+ One possible way to implement this would be to have manual boot
+ stanzas override auto-detected boot loader definitions for the same
+ boot loader file.</li>
<li>It should be possible to override specific auto-detected boot
loader settings—say, to disable one specific boot loader or
<li>I'd like to give the user the ability to set custom options on a
single-boot basis, similar to what's possible in GRUB.</li>
+ <li>A way to set the color of the font would be useful for theming
+ purposes.</li>
+
+ <li>Going further, the ability to load arbitrary other fonts, ideally
+ in a standard format, would be desirable for theming purposes.</li>
+
+ <li>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.</li>
+
+ <li>A way to "source" one configuration file from another one would be
+ helpful for some types of configuration scripts. (This would enable
+ overriding options in a secondary file without modifying the
+ default original file, for instance.)</li>
+
</ul></li> <!-- New features -->
<li><b>Improvements to the EFI drivers:</b>
<ul>
- <li>The drivers I've built fail to load on a 32-bit Mac Mini; I get an
- "incompatible version" error message at an EFI shell, or an error
- code of 80000019 when rEFInd tries to load them. (These two
- messages are equivalent.) I suspect the problem is related to the
- EFI version 1.<i>x</i> used on the Mac, as opposed to UEFI
- 2.<i>x</i> used on PCs. I'm looking into the problem. In the
- meantime, if you have this problem, I recommend tracking down
- equivalent drivers from other sources. (See the <a
- href="drivers.html">drivers page</a> for some pointers.) I'd
- appreciate <a href="mailto:rodsmith@rodsbooks.com">hearing from
- you</a> if you have problems along these lines. Please tell me what
- type of computer you're using, and especially the firmware version
- data (from rEFInd's "about" screen). This may help me narrow down
- the cause.</li>
-
<li>Drivers for additional filesystems are required. Given the recent
shift to ext4fs, that should be the priority; however, other Linux
filesystems, UDF, and perhaps others would all be welcome
the problem is worst with VirtualBox, and the next worst is a
system that uses <a
href="http://www.rodsbooks.com/bios2uefi/">DUET</a>). Nonetheless,
- I'd like to track down the cause and fix it.
+ I'd like to track down the cause and fix it.</li>
+
+ <li>The HFS+ driver returns a volume label of "HFS+ volume", no matter
+ what the volume's real label is.</li>
- <li>The driver installation procedure could be improved, perhaps by
- adding support for drivers to the <tt>install.sh</tt> script.
+ <li>This may not be possible, or it may require a new driver, but a way
+ to have the drivers access files (like a Linux loopback mount) is
+ desirable.</li>
</ul></li> <!-- Drivers -->