href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-12/21/2012, referencing rEFInd 0.6.1</p>
+6/18/2013, referencing rEFInd 0.6.12</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>
<td>Donate $2.50</td>
<td>Donate $5.00</td>
<td>Donate $10.00</td>
+<td>Donate $20.00</td>
<td>Donate another value</td>
</tr>
<tr>
-<td><form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
-<input type="hidden" name="cmd" value="_xclick">
+
+<td>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="business" value="rodsmith@rodsbooks.com">
-<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="lc" value="US">
+<input type="hidden" name="no_note" value="0">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="1.00">
-<input type="image" src="http://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
+<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
+<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
+<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
-
</td>
-<td><form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
-<input type="hidden" name="cmd" value="_xclick">
+
+<td>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="business" value="rodsmith@rodsbooks.com">
-<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="lc" value="US">
+<input type="hidden" name="no_note" value="0">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="2.50">
-<input type="image" src="http://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
+<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
+<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
+<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
-
</td>
-<td><form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
-<input type="hidden" name="cmd" value="_xclick">
+
+
+<td>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="business" value="rodsmith@rodsbooks.com">
-<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="lc" value="US">
+<input type="hidden" name="no_note" value="0">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="5.00">
-<input type="image" src="http://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
+<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
+<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
+<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
-
</td>
-<td><form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
-<input type="hidden" name="cmd" value="_xclick">
+
+<td>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="business" value="rodsmith@rodsbooks.com">
-<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="lc" value="US">
+<input type="hidden" name="no_note" value="0">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="10.00">
-<input type="image" src="http://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
+<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
+<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
+<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
+</td>
+<td>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_donations">
+<input type="hidden" name="business" value="rodsmith@rodsbooks.com">
+<input type="hidden" name="lc" value="US">
+<input type="hidden" name="no_note" value="0">
+<input type="hidden" name="currency_code" value="USD">
+<input type="hidden" name="amount" value="20.00">
+<input type="hidden" name="item_name" value="rEFInd Boot Manager">
+<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
+<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
+<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
+</form>
</td>
+
<td>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_donations">
<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
</td></tr>
-</table>
+</table>
<hr />
systems with a limited number of configurations. Therefore, if you
try rEFInd and run into bugs, please report them to me!</li>
- <li>I have little talent with graphics manipulation programs, so
- rEFInd's boot logo, such as it is, is pretty weak. If you have
- artistic talent and would like to create a rEFInd logo, please feel
- free to send it to me. I won't make any final decision about
- changes until at least June 30 of 2012.</li>
-
<li>rEFIt's original design, and hence rEFInd's design, enables easy
theming by replacing icon files. If you'd like to design a new
theme for rEFInd, feel free to submit it. I might or might not
like to add detection for Itanium and ARM systems, but I have no
way to test such changes.</li>
- <li>The code could be more flexible in its handling of the sizes of
- various graphical elements, and particularly drawn text. Prior to
- version 0.2.2, submenu text was invisible on UEFI-based PCs with
- 800x600 and smaller displays because of an inability to properly
- crop the graphics fields that hold the text. With version 0.2.2,
- I've put a band-aid on this problem by reducing the field size so
- that it now works on 800x600 displays, but smaller displays still
- suffer from this problem. This is just an example of the
- inflexibility of certain layout issues within rEFInd.</li>
-
<li>Although the ICNS file format used by rEFInd supports multiple
image sizes, if a size that rEFInd needs isn't present in the file,
rEFInd can't use the icon. The ability to scale images to the
desired size would be useful.</li>
+ <li>A way to set the color of the font would be useful for theming
+ purposes.</li>
+
+ <li>The program's font features could be greatly improved by enabling
+ use of a standard font format, by enabling use of non-ASCII
+ characters, and by enabling use of variable-width as well as
+ monospace fonts.</li>
+
<li>I would like to be able to specify the volume on which a boot
loader resides using a partition GUID value, but extracting a GUID
from the partition data is harder than extracting the volume's
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
+ <i>filesystem</i> label comes up empty.</li>
+
+ <li>The <tt>default_selection</tt> option in <tt>refind.conf</tt> 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>Along the lines of the previous item, the
+ <tt>default_selection</tt> 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>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>I've been receiving reports of blank screens when using rEFInd on
+ some recent Mac models. I've investigated this with the help of one
+ user, and I suspect that Apple has made changes to its firmware
+ that are likely to affect just about any EFI program. I don't know
+ how to fix the problem at the moment, though; I need both
+ documentation and access to an afflicted computer to do the
+ necessary work, and I have neither.</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
+ <li>The Shutdown option works correctly on Macs, but not on many UEFI-based
PCs. On such systems, Shutdown reboots the computer. This should be
fixed.</li>
Apple-specific EFI extension, and I know of no standard EFI way to
do it.</li>
+ <li>A couple of Mac users have reported that the brightness-adjustment
+ features in Windows don't work when Windows is booted via rEFInd,
+ but that these features do work when Windows is booted via the
+ Mac's built-in boot manager. Unfortunately, I have no idea what
+ causes this problem, I have no Windows installation on my one
+ (elderly) Mac, and I have no way to debug it. Therefore, it's
+ unlikely that I'll be able to fix this problem myself; but if you
+ have the equipment and skill to do so, I'd be interested in
+ receiving a patch.</li>
+
<li>The re-scan feature occasionally produces odd results, such as
ignoring new media or keeping old media that have been ejected.
This should be investigated and fixed.</li>
caused by a truncated DevicePath to the shell, which includes the
shell's pathname but not the device identifier.</li>
+ <li>When specifying a volume by name in <tt>dont_scan_dirs</tt>,
+ slashes are converted to backslashes in the specification but not
+ in the actual volume name read from disk. Thus, you can't specify a
+ volume by name if it includes a slash (as in <tt>Fedora
+ /boot</tt>). Workarounds are to rename the volume to omit the slash
+ and to use a filesystem number rather than a volume label.</li>
+
<li>The code is in need of review to search for memory leaks and
similar problems.</li>
+ <li>If the user has a Linux software RAID 1 array, rEFInd will detect
+ kernels or boot loaders in RAID 1 twice. This could be fixed by
+ adding a check for duplicate filesystem UUIDs to the
+ partition-scanning code.</li>
+
</ul></li> <!-- Known bugs -->
<li><b>New features I'd like to add:</b>
loader settings—say, to disable one specific boot loader or
change its icon.</li>
- <li>A way to read boot options set via <tt>efibootmgr</tt>,
- <tt>bless</tt>, or similar options from NVRAM to add to the boot
- set would be useful.</li>
-
- <li>A way to examine and change the NVRAM settings could be useful.
- This would enable a CD-based boot of rEFInd to fix a broken disk
- boot. Perhaps this could be done via a separate tool that could be
- launched much like the shell or <tt>gptsync</tt>.</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>The ability to rotate the display for users who rotate their
+ monitors would be helpful.</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
to have the drivers access files (like a Linux loopback mount) is
desirable.</li>
+ <li>When built with the GNU-EFI package, an attempt to load more than
+ one driver on my 32-bit Mac Mini causes the computer to hang. I do
+ <i>not</i> have this problem with 64-bit drivers on my UEFI-based
+ computers. I don't know if this is a 32-bit issue or a Mac issue.
+ This is <i>not</i> relevant if you're using my binary package,
+ since I build it with the TianoCore EDK2, and the drivers built in
+ that way don't exhibit this bug.</li>
+
</ul></li> <!-- Drivers -->
</ul>
<hr />
-<p>copyright © 2012 by Roderick W. Smith</p>
+<p>copyright © 2012–2013 by Roderick W. Smith</p>
<p>This document is licensed under the terms of the <a href="FDL-1.3.txt">GNU Free Documentation License (FDL), version 1.3.</a></p>