* The Arch Linux icon was created by ~IDRGSKYWALKER on Deviant Art
(http://idrgskywalker.deviantart.com/art/Arch-Linux-Logo-186211022).
+* The gummiboot icon is taken from the gummiboot Web page
+ (http://freedesktop.org/wiki/Software/gummiboot) and scaled down
+ slightly.
+
* Dave Vasilevsky (dave@vasilevsky.ca) contributed the disk-ejection
code.
* John Bressler (jrb1327@gmail.com) contributed the code to boot BIOS-based
OSes on UEFI-based PCs.
+
+* The code for editing boot options (cursor_left(), cursor_right(), and
+ line_edit() in screen.c) is taken from gummiboot.
-0.4.7 (??/?/2012):
+0.4.7 (11/6/2012):
------------------
+- Added an icon for gummiboot.
+
- Added a boot option editor: Pressing the Insert or F2 key from a boot
tag's options menu opens a simple text-mode line editor on which the boot
options may be edited for a one-time boot with altered options.
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>\r
\r
<p>Originally written: 3/14/2012; last Web page update:\r
-10/6/2012, referencing rEFInd 0.4.6</p>\r
+10/7/2012, referencing rEFInd 0.4.7</p>\r
\r
\r
<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>\r
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 4/19/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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>
<li>The ability to fine-tune options passed to EFI boot loaders, via manual configuration.</li>
+<li>An option editor to enable you to edit the options passed to an EFI boot loader on a per-boot basis.</li>
+
<li>The ability to specify additional directories to scan for boot loaders and drivers (as of version 0.2.7).</li>
<li>The ability to specify directories to <i>not</i> be scanned for boot loaders, even if they would ordinarily be scanned (as of version 0.4.2).</li>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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><b><a
- href="http://sourceforge.net/projects/refind/files/0.4.6/refind-src-0.4.6.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.4.7/refind-src-0.4.7.zip/download">A
source code zip file</a></b>—This is useful if you want to
compile the software locally. Note that I use Linux with the <a
href="https://sourceforge.net/projects/tianocore/">TianoCore EFI
possible, but I've not attempted it.</li>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.4.6/refind-bin-0.4.6.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.4.7/refind-bin-0.4.7.zip/download">A
binary zip file</a></b>—Download this if you want to install
rEFInd and/or its filesystem drivers on an <i>x</i>86 or <i>x</i>86-64
computer and have no need to test rEFInd first by booting it on an
<!--
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.4.6/refind-bin-gnuefi-0.4.6.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.4.7/refind-bin-gnuefi-0.4.7.zip/download">A
binary zip file (built with GNU-EFI)</a></b>—This package is just
like the preceding one, except that it was built using the GNU-EFI
development kit rather than the TianoCore EFI Development Kit 2 (EDK2)
-->
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.4.6/refind-cd-0.4.6.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.4.7/refind-cd-0.4.7.zip/download">A
CD-R image file</a></b>—This download contains the same files as
the binary zip file, but you can burn it to a CD-R to test rEFInd
(and its filesystem drivers) without installing it first. (It boots on
<h2>Getting rEFInd from Your OS's Repositories</h2>
-<p>If you use Arch Linux, you can obtain rEFInd from its repositories, in both <a href="http://www.archlinux.org/packages/extra/any/refind-efi-x86_64/">stable</a> and <a href="https://aur.archlinux.org/packages.php?ID=59810">git (experimental)</a> releases. The git release is likely to include pre-release bug fixes and new features, but those features may be poorly tested or undocumented.</p>
+<p>If you use Arch Linux, you can obtain rEFInd from its repositories, in both <a href="https://www.archlinux.org/packages/extra/any/refind-efi/">stable</a> and <a href="https://aur.archlinux.org/packages/refind-efi-tianocore-git/">git (experimental)</a> releases. The git release is likely to include pre-release bug fixes and new features, but those features may be poorly tested or undocumented.</p>
<p>You can also obtain rEFInd from the <a href="http://nixos.org/nixpkgs/">Nix Packages collection,</a> which creates packages for a number of OSes using its own packaging system.</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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>
<h2>Fixing a Sluggish Macintosh Boot</h2>
</a>
-<p>I've received a few reports of a sluggish boot process (a delay of about 30 seconds before starting rEFInd) on some Macs after installing rEFInd. I've been unable to replicate this problem myself, and its true cause remains mysterious to me. I have found <a href="http://ubuntuforums.org/showpost.php?p=12256273&postcount=200">a Web forum post</a> describing a possible fix. Be aware, though, that this procedure involves using the <tt>efibootmgr</tt> utility on Macs, which has been known to damage the firmware on some Macs. Other reports indicate that this problem has been fixed with recent kernels. Thus, I present this information cautiously and with a strong "use at your own risk" warning. If you care to proceed, I recommend you update your Linux kernel to the latest possible and then proceed as follows:</p>
+<p>I've received a few reports of a sluggish boot process (a delay of about 30 seconds before starting rEFInd) on some Macs after installing rEFInd. I've been unable to replicate this problem myself, and its true cause remains mysterious to me. I have found <a href="http://ubuntuforums.org/showpost.php?p=12256273&postcount=200">a Web forum post</a> describing a possible fix. Be aware, though, that this procedure involves using the <tt>efibootmgr</tt> utility on Macs, which has been known to damage the firmware on some Macs. Other reports indicate that this problem has been fixed with 3.3.0 and later kernels. Thus, I present this information cautiously and with a strong "use at your own risk" warning. If you care to proceed, I recommend you update your Linux kernel to the latest possible version and then proceed as follows:</p>
<ol>
<li>Boot into Linux.</li>
-<li>Type <tt class="userinput">efibootmgr</tt> as <tt>root</tt> to obtain a list of your boot loader entries. Each entry is preceded by a boot number, as in <tt>Boot0003</tt> or <tt>Boot0027</tt>.</li>
+<li>Type <tt class="userinput">efibootmgr</tt> as <tt>root</tt> to obtain a list of your boot loader entries. Each entry includes a boot number, as in <tt>Boot0003</tt> or <tt>Boot0027</tt>.</li>
<li>Remove all of the boot loader entries <i>except</i> rEFInd's by using <tt>efibootmgr</tt>'s <tt>-b <tt class="variable">bootnum</tt></tt> option to specify the boot entry and <tt>-B</tt> to delete it. For instance, typing <tt class="userinput">efibootmgr -b 0027 -B</tt> as <tt>root</tt> deletes boot entry <tt>Boot0027</tt>. Issue a separate <tt>efibootmgr</tt> command for each boot entry.</li>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/19/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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>
<p class="subhead">by Roderick W. Smith, <a
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
-<p>Last Web page update: 10/6/2012</p>
+<p>Last Web page update: 11/6/2012</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><b>0.4.7 (11/6/2012)</b>—The most important new feature in this version is a boot options editor. From rEFInd's main menu, press Insert or F2 to see the options menu. Select one of the options and press Insert or F2 again and the screen switches to a text-mode display in which you can edit the options that will be passed to the boot loader. A second new feature is a new icon for <a href="http://freedesktop.org/wiki/Software/gummiboot">gummiboot,</a> which is another EFI boot manager. This version also alters the behavior of the <tt>scan_delay</tt> option, since I've been told that the previous version didn't work; the new one does. Finally, this version omits the space that followed boot options when booting most OSes. This behavior was inherited from rEFIt; a comment in the source code indicates it's needed by OS X, but I've been told it causes boot failures when launching Linux on some Macs. Thus, rEFInd now adds this space only when booting Mac OS X.</li>
+
<li><b>0.4.6 (10/6/2012)</b>—Thanks to contributor John Bressler, rEFInd can now boot legacy (BIOS) boot loaders on many UEFI PCs. (Previously, rEFInd could do this only on Macs.) Other changes include a new <tt>scan_delay</tt> option that inserts a delay between rEFInd starting and disk scans (to help detect disks that are slow to appear to the firmware) and a change in the default <tt>scanfor</tt> value so that legacy OSes are detected by default on Macs (but not on PCs). I've also fixed some memory management problems that caused error messages to appear on some systems when rEFInd was compiled with the TianoCore EDK2 toolkit. Finally, I'm now using the TianoCore toolkit to make my primary binary builds, since the new UEFI legacy boot support requires the TianoCore environment. (rEFInd still builds with GNU-EFI, but it doesn't support booting legacy OSes on UEFI systems when built in this way.)</li>
<li><b>0.4.5 (8/12/2012)</b>—This version fixes a couple of Mac-related bugs. The most important is that version 0.4.3 and 0.4.4 couldn't boot BIOS-based (aka CSM or Boot Camp) OS installations; 0.4.5 restores this important feature. The second bug is in the <tt>install.sh</tt> script, which would often fail to detect rEFItBlesser, thus leaving it enabled and causing rEFInd to fail to start after the first reboot into OS X.</li>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 4/19/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-10/6/2012, referencing rEFInd 0.4.6</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>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>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-11/5/2012, referencing rEFInd 0.4.6.3</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>
<p>The last three of these options are always available by default, but the first depends on the presence of the EFI shell program file, as described earlier. To get the <tt>gptsync</tt> icon, you must install <tt>gptsync.efi</tt> and adjust the <tt>showtools</tt> option in <tt>refind.conf</tt>, as well.</p>
-<p>To launch an OS or utility, you should select its tag and then press the Enter key. If you press the Insert key, rEFInd will show a menu that may hold additional options, depending on the OS type. The following figure shows the submenu for Mac OS X. You can use this menu much like the main menu; move the cursor to select the option you want to use, then press the Enter key to launch the boot loader with the selected options. Press the Esc key or select <tt>Return to Main Menu</tt> to return to the main menu.</p>
+<p>To launch an OS or utility, you should select its tag and then press the Enter key. If you press the Insert key, rEFInd will show a menu that may hold additional options, depending on the OS type. The following figure shows the submenu for Mac OS X. You can use this menu much like the main menu; move the cursor to select the option you want to use, then press the Enter key to launch the boot loader with the selected options. Press the Esc key or select <tt>Return to Main Menu</tt> to return to the main menu. You can also press the Insert key again to edit your boot loader options. A simple text-mode line editor opens, enabling you to move a curso back and forth in the line with your arrow keys, delete text, and type in new text. If you want to boot with your edited options, press the Enter key. If you decide you picked the wrong entry, press the Esc key.</p>
<br /><center><img src="submenu.png" align="center" width="442"
height="269" alt="rEFInd submenus enable you to set session-specific
#
#default_selection 1
-# Enable or disable the usual adding of a space after the boot options
-# when launching an EFI binary. Ordinarily rEFInd adds a space at the
-# end of the options line, since rEFIt's code indicated this was
-# required on some Macs. I've heard of problems on some systems when
-# these spaces are added, though, so this option enables you to set
-# the option explicitly. Setting it to anything but "true" causes the
-# trailing space to be omitted.
-# Default value is "true".
-#
-#space_after_boot_options false
-
# Sample manual configuration stanzas. Each begins with the "menuentry"
# keyword followed by a name that's to appear in the menu (use quotes
# if you want the name to contain a space) and an open curly brace
if (AboutMenu.EntryCount == 0) {
AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
- AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.4.6.3");
+ AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.4.7");
AddMenuInfoLine(&AboutMenu, L"");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012 Roderick W. Smith");
GraphicsScreenDirty = TRUE;
}
-// Line-editing functions borrowed from gummiboot (cursor_left(), cursor_right(), & line_edit())
+// Line-editing functions borrowed from gummiboot (cursor_left(), cursor_right(), & line_edit()).
+// gummiboot is copyright (c) 2012 by Kay Sievers <kay.sievers@vrfy.org> and Harald Hoyer
+// <harald@redhat.com> and is licensed under the LGPL 2.1.
static void cursor_left(UINTN *cursor, UINTN *first)
{