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>
+12/16/2012, referencing rEFInd 0.6.0</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>Currently, if a filesystem's label comes up empty, rEFInd
+ substitutes the size, so you get displays like <tt>boot
+ EFI\foo\bar.efi from 90 GiB volume</tt>. I'd like to add more
+ checks to substitute the GPT <i>partition</i> label if the
+ <i>filesystem</i> label comes up empty, or add a filesystem type
+ identifier to the size.</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>When setting a resolution higher than about 800x600 (or maybe even
+ 640x480) in text mode, the text displayed by rEFInd, and on some
+ systems shells and other programs launched from rEFInd, is
+ restricted to an 80x24-character area in the top-left corner of the
+ screen.</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 -->
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
boot. Perhaps this could be done via a separate tool that could be
launched much like the shell or <tt>gptsync</tt>.</li>
- <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>
</ul></li> <!-- New features -->
<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
+ <li>Drivers for additional filesystems are desirable. Given the talk of
+ shifting to Btrfs, that should be the priority; however, other
+ Linux filesystems, UDF, and perhaps others would all be welcome
additions. Also along these lines, adding drivers for Linux LVM and
RAID setups would be useful, too.</li>
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 -->