]> code.delx.au - refind/commitdiff
Version 0.9.2 release
authorsrs5694 <srs5694@users.sourceforge.net>
Sat, 19 Sep 2015 15:01:43 +0000 (11:01 -0400)
committersrs5694 <srs5694@users.sourceforge.net>
Sat, 19 Sep 2015 15:01:43 +0000 (11:01 -0400)
19 files changed:
NEWS.txt
debian/changelog
debian/copyright
docs/refind/bootmode.html
docs/refind/configfile.html
docs/refind/drivers.html
docs/refind/features.html
docs/refind/getting.html
docs/refind/index.html
docs/refind/installing.html
docs/refind/linux.html
docs/refind/revisions.html
docs/refind/secureboot.html
docs/refind/themes.html
docs/refind/todo.html
docs/refind/using.html
install.sh
refind.spec
refind/main.c

index c049f136a744ac0c14e0846f207b90ecbf471765..1d2378232769952ffe69b94b09ccc6aad61304e3 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,11 +1,23 @@
-0.9.2 (9/??/2015):
+0.9.2 (9/19/2015):
 ------------------
 
+- Added "--keepname" option to install.sh. This option causes install.sh
+  to keep refind_x64.efi named as such rather than rename it as grubx64.efi
+  when using Shim. This option is meaningful only if the --shim option is
+  also used. This option passes the refind_x64.efi filename as an option to
+  Shim, which overrides the default filename of grubx64.efi. A big caveat:
+  Only Shim 0.7 and later supports this feature. (Shim 0.4 also works if a
+  refind_x64.efi is referred to as "\refind_x64.efi" on the command line,
+  but the need for a leading backslash to refer to a file in the same
+  directory as Shim is so confusing and wrong that I cannot in good
+  conscience support it.) I've not seen signed Shim binaries between 0.4
+  and 0.7, so I don't know if any of them might work.
+
 - Implemented a workaround for a bug in Shim 0.8 that prevented
   authentication of more than one binary. If any filesystem drivers were
-  installed, the first one would be verified, leaving rEFInd to be unable
-  to launch anything else unless it was signed by a key in the computer's
-  main Secure Boot db list.
+  installed, the first one would be verified, leaving rEFInd unable to
+  launch anything else unless it was signed by a key in the computer's main
+  Secure Boot db list.
 
 0.9.1 (9/13/2015):
 ------------------
index 57137e744bd271fe941d53053299b1f7d9b1bdec..aaf72bb178fc7392962e88c1a9fac8bc8ff1cdd1 100644 (file)
@@ -1,3 +1,9 @@
+refind (0.9.2-0ppa1) trusty; urgency=medium
+
+  * Version bump
+
+ -- Roderick Smith <rodsmith@rodsbooks.com>  Sat, 19 Sep 2015 10:42:58 -0400
+
 refind (0.9.1-0ppa1) trusty; urgency=medium
 
   * Version bump
index 3a53c6c78513c49831d49b70c33181c4e31256b8..1ceeff42586945f64cb5b5b5af896ef984105f15 100644 (file)
@@ -9,6 +9,20 @@ Upstream Authors:
     Dave Vasilevsky <dave@vasilevsky.ca>
     John Bressler <jrb1327@gmail.com>
     Stefan Agner <stefan@agner.ch>
+    James Bottomley <James.Bottomley@HansenPartnership.com>
+    Kay Sievers <kay.sievers@vrfy.org>
+    Harald Hoyer <harald@redhat.com>
+    Mark Adler
+    Markus Franz Xaver Johannes Oberhumer
+    Peter Anvin
+    Lode Vandevenne
+    Gary S. Brown
+    Intel Corporation
+    Regents of the University of California
+    UNIX System Laboratories, Inc.
+    Oracle Corporation
+    Tencent, Inc.
+    Apple, Inc.
 
 Copyright:
     Copyright 2012 Roderick W. Smith
index d3c8ce5e05c45a71265748b297ae39f566160532..dd29465feca09e3c118eb2cd351eaa1bea8110fc 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>\r
 \r
 <p>Originally written: 3/14/2012; last Web page update:\r
-9/13/2015, referencing rEFInd 0.9.1</p>\r
+9/19/2015, referencing rEFInd 0.9.2</p>\r
 \r
 \r
 <p>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
index 599b3b59f4551e65835d9842ea16eef668645a82..b0c91f130eaf88f7dc751ebd08992871e23bdef0 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 
 <p>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>
index d6ea5b5e3205574a88ec1d606b15464668cefc2a..9b99a0005b17f6e5f31351fc44e5392da2d59eea 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 4/19/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 
 <p>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>
index 5dda42721277d804e2d4be9c79f4172b1ca1a35a..d1ca4268c4e1791f7b8c1e1fd126540c3f5bf26d 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 <p>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>
 
index 6daa4cc85e90445f4e80bc1f06421140943249b7..f4720e9a08f4df6c2bb59d967a7cab8b60235d71 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 <p>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>
 
@@ -138,7 +138,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <ul>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.9.1/refind-bin-0.9.1.zip/download">A
+    href="http://sourceforge.net/projects/refind/files/0.9.2/refind-bin-0.9.2.zip/download">A
     binary zip file</a></b>&mdash;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
@@ -148,13 +148,13 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     href="installing.html">Installing rEFInd</a> page. Some users of Arch
     Linux have reported problems booting some specific Arch Linux kernels
     with rEFInd and some other tools. For them, a <a
-    href="http://sourceforge.net/projects/refind/files/0.9.1/refind-bin-gnuefi-0.9.1.zip/download">variant
+    href="http://sourceforge.net/projects/refind/files/0.9.2/refind-bin-gnuefi-0.9.2.zip/download">variant
     package</a> exists in which the <i>x</i>86-64 binary was compiled with
     GNU-EFI rather than the usual TianoCore EDK2. This change helps some
     users with this problem.</li>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.9.1/refind-0.9.1-1.x86_64.rpm/download">A
+    href="http://sourceforge.net/projects/refind/files/0.9.2/refind-0.9.2-1.x86_64.rpm/download">A
     binary RPM file</a></b>&mdash;If you use an RPM-based <i>x</i>86-64
     Linux system such as Fedora or openSUSE, you can install the binary RPM
     package rather than use the binary zip file. (I don't provide an
@@ -163,13 +163,13 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     rEFInd</a> page) as part of the installation process. Distribution
     maintainers can examine the <tt>refind.spec</tt> file in the source
     package and tweak it to their needs. The <a
-    href="http://sourceforge.net/projects/refind/files/0.9.1/refind-0.9.1-1.src.rpm/download">source
+    href="http://sourceforge.net/projects/refind/files/0.9.2/refind-0.9.2-1.src.rpm/download">source
     RPM file</a> might or might not build on your system as-is; it relies
     on assumptions about the locations of the GNU-EFI development
     files.</li>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.9.1/refind_0.9.1-1_amd64.deb/download">A
+    href="http://sourceforge.net/projects/refind/files/0.9.2/refind_0.9.2-1_amd64.deb/download">A
     binary Debian package</a></b>&mdash;If you use an <i>x</i>86-64 version
     of Debian, Ubuntu, Mint, or another Debian-based distribution, you can
     install from this package, which was converted from the binary RPM
@@ -180,7 +180,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <p class="sidebar"><b>Note:</b> At the moment, neither the bootable CD-R image file nor the bootable USB flash drive image file supports booting with Secure Boot active. The x86-64 version of the <a href="http://en.altlinux.org/Rescue">ALT Linux Rescue disc</a> uses a Secure Boot-enabled rEFInd, though, so you may find that useful in some situations.</p>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.9.1/refind-cd-0.9.1.zip/download">A
+    href="http://sourceforge.net/projects/refind/files/0.9.2/refind-cd-0.9.2.zip/download">A
     CD-R image file</a></b>&mdash;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
@@ -204,14 +204,14 @@ on <tt>/dev/sdd</tt>. This procedure should work even on a BIOS-booted
 computer.</p>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.9.1/refind-flashdrive-0.9.1.zip/download">A
+    href="http://sourceforge.net/projects/refind/files/0.9.2/refind-flashdrive-0.9.2.zip/download">A
     USB flash drive image file</a></b>&mdash;Although you     can create
     your own rEFInd USB flash drive, you may find it easier to download
     this version and copy it to your USB drive with <tt>dd</tt> or some
     other low-level disk copying utility.</li>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.9.1/refind-src-0.9.1.zip/download">A
+    href="http://sourceforge.net/projects/refind/files/0.9.2/refind-src-0.9.2.zip/download">A
     source code zip file</a></b>&mdash;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
index cec12759c525c1c424f4800883865e641e94b6d2..01c5eb4aea13d08b18f25231465d29cdcf40a5f6 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 
 <p>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>
index 4bd53f89d6ca7d23c6809cff9d596cccdb766712..8497bf83e796215b797670549667403989c4f22e 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-9/14/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 
 <p>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>
@@ -226,11 +226,11 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>I provide RPM and Debian package files for rEFInd; and starting with version 0.8.1, I'm maintaining an Ubuntu PPA for rEFInd. If you have a working RPM-based or Debian-based Linux installation that boots in EFI mode, using one of these files is likely to be the easiest way to install rEFInd: You need only download the file and issue an appropriate installation command. In some cases, double-clicking the package in your file manager will install it. If that doesn't work, a command like the following will install the RPM on an RPM-based system:</p>
 
-<pre class="listing"># <tt class="userinput">rpm -Uvh refind-0.9.1-1.x86_64.rpm</tt></pre>
+<pre class="listing"># <tt class="userinput">rpm -Uvh refind-0.9.2-1.x86_64.rpm</tt></pre>
 
 <p>On a Debian-based system, the equivalent command is:</p>
 
-<pre class="listing"># <tt class="userinput">dpkg -i refind_0.9.1-1_amd64.deb</tt></pre>
+<pre class="listing"># <tt class="userinput">dpkg -i refind_0.9.2-1_amd64.deb</tt></pre>
 
 <p>Either command produces output similar to that described for <a href="#installsh">using the <tt>install.sh</tt> script,</a> so you can check it for error messages and other signs of trouble. The package file installs rEFInd and registers it with the EFI to be the default boot loader. The script that runs as part of the installation process tries to determine if you're using Secure Boot, and if so it will try to configure rEFInd to launch using shim; however, this won't work correctly on all systems. Ubuntu 12.10 users who are booting with Secure Boot active should be wary, since the resulting installation will probably try to use Ubuntu's version of shim, which won't work correctly with rEFInd. The shim program provided with more recent versions of Ubuntu should work correctly.</p>
 
@@ -403,13 +403,21 @@ Unmounting install dir</pre>
     <tt>refind_linux.conf</tt>, though&mdash;for instance, to add
     <tt>dolvm</tt> to the boot options on Gentoo systems that use LVM.</li>
 
+<li>If you pass the <tt>--shim</tt> option to the script (along with a
+    filename for a shim binary), the script sets up for a Secure Boot
+    configuration via shim. By default, this causes the rEFInd binary to be
+    renamed as <tt>grubx64.efi</tt>. Recent versions of shim support
+    passing the name of the follow-on program to shim via a parameter,
+    though. If you want to use this feature, you can pass the
+    <tt>--keepname</tt> option to <tt>install.sh</tt>.</li>
+
 </ul>
 
 <p>In addition to these quirks, you should be aware of some options that <tt>install.sh</tt> supports to enable you to customize your installation in various ways. The syntax for <tt>install.sh</tt> is as follows:</p>
 
 <pre class="listing">
 install.sh [--notesp | --usedefault <tt class="variable">device-file</tt> | --root <tt class="variable">mount-point</tt> | \
-            --ownhfs <tt class="variable">device-file</tt> ] \
+            --ownhfs <tt class="variable">device-file</tt> ] [--keepname ] \
            [--nodrivers | --alldrivers] [--shim <tt class="variable">shim-filename</tt>] [--localkeys] [--yes]
 </pre>
 
@@ -446,12 +454,16 @@ install.sh [--notesp | --usedefault <tt class="variable">device-file</tt> | --ro
 </tr>
 <tr>
    <td><tt>--shim <tt class="variable">shim-filename</tt></tt> or <tt>--preloader <tt class="variable">preloader-filename</tt></tt></td>
-   <td>If you pass this option to <tt>install.sh</tt>, the script will copy the specified shim program file to the target directory, copy the <tt>MokManager.efi</tt> file from the shim program file's directory to the target directory, copy the 64-bit version of rEFInd as <tt>grubx64.efi</tt>, and register shim with the firmware. (If you also specify <tt>--usedefault</tt>, the NVRAM registration is skipped.) When the target file is identified as PreLoader, much the same thing happens, but <tt>install.sh</tt> copies <tt>HashTool.efi</tt> instead of <tt>MokManager.efi</tt> and copies rEFInd as <tt>loader.efi</tt> rather than as <tt>grubx64.efi</tt>. The intent is to simplify rEFInd installation on a computer that uses Secure Boot; when so set up, rEFInd will boot in Secure Boot mode, with one caveat: The first time you boot, MokManager/HashTool will launch, and you must use it to locate and install a public key or register rEFInd as a trusted application. The rEFInd public key file will be located in the rEFInd directory's <tt>keys</tt> subdirectory under the name <tt>refind.cer</tt>. Note that I'm not providing a shim binary myself, but you can download one from <a href="http://www.codon.org.uk/~mjg59/shim-signed/">here.</a> Some distributions also provide their own shim programs, so can point to them&mdash;for instance, in <tt>/boot/efi/EFI/fedora/shim.efi</tt>.</td>
+   <td>If you pass this option to <tt>install.sh</tt>, the script will copy the specified shim program file to the target directory, copy the <tt>MokManager.efi</tt> file from the shim program file's directory to the target directory, copy the 64-bit version of rEFInd as <tt>grubx64.efi</tt>, and register shim with the firmware. (If you also specify <tt>--usedefault</tt>, the NVRAM registration is skipped. If you also use <tt>--keepname</tt>, the renaming to <tt>grubx64.efi</tt> is skipped.) When the target file is identified as PreLoader, much the same thing happens, but <tt>install.sh</tt> copies <tt>HashTool.efi</tt> instead of <tt>MokManager.efi</tt> and copies rEFInd as <tt>loader.efi</tt> rather than as <tt>grubx64.efi</tt>. The intent is to simplify rEFInd installation on a computer that uses Secure Boot; when so set up, rEFInd will boot in Secure Boot mode, with one caveat: The first time you boot, MokManager/HashTool will launch, and you must use it to locate and install a public key or register rEFInd as a trusted application. The rEFInd public key file will be located in the rEFInd directory's <tt>keys</tt> subdirectory under the name <tt>refind.cer</tt>. Note that I'm not providing a shim binary myself, but you can download one from <a href="http://www.codon.org.uk/~mjg59/shim-signed/">here.</a> Some distributions also provide their own shim programs, so can point to them&mdash;for instance, in <tt>/boot/efi/EFI/fedora/shim.efi</tt>.</td>
 </tr>
 <tr>
    <td><tt>--localkeys</tt></td>
    <td>This option tells <tt>install.sh</tt> to generate a new Machine Owner Key (MOK), store it in <tt>/etc/refind.d/keys</tt> as <tt>refind_local.*</tt>, and re-sign all the 64-bit rEFInd binaries with this key before installing them. This is the preferable way to install rEFInd in Secure Boot mode, since it means your binaries will be signed locally rather than with my own key, which is used to sign many other users' binaries; however, this method requires that both the <tt>openssl</tt> and <tt>sbsign</tt> binaries be installed. The former is readily available in most distributions' repositories, but the latter is not, so this option is not the default.</td>
 </tr>
+<tr>
+   <td><tt>--keepname</tt></td>
+   <td>This option is useful only in conjunction with <tt>--shim</tt>. It tells <tt>install.sh</tt> to keep rEFInd's regular filename (typically <tt>refind_x64.efi</tt>) when used with shim, rather than rename the binary to <tt>grubx64.efi</tt>. This change cuts down on the chance of confusion because of filename issues; however, this feature requires that shim be launched with a command-line parameter that points to the rEFInd binary under its real name. versions of shim prior to 0.7 do not properly support this feature. (Version 0.4 supports it but with a buggy interpretation of the follow-on loader specification.) If your NVRAM variables become corrupted or are forgotten, this feature may make rEFInd harder to launch. This option is incompatible with <tt>--usedefault</tt> and is unavailable when run under OS X or without the <tt>--shim</tt> option. If the script discovers an existing rEFInd installation under <tt>EFI/BOOT</tt> or <tt>EFI/Microsoft/Boot</tt> and no other rEFInd installation when this option is used, it will abort.</td>
+</tr>
 <tr>
    <td><tt>--yes</tt></td>
    <td>This option causes the script to assume a <tt>Y</tt> input to every yes/no prompt that can be generated under certain conditions, such as if you specify <tt>--shim</tt> but <tt>install.sh</tt> detects no evidence of a Secure Boot installation. This option is intended mainly for use by scripts such as those that might be used as part of an installation via an RPM or Debian package.</td>
@@ -499,7 +511,7 @@ Filesystem     1K-blocks  Used Available Use% Mounted on
 <p class="sidebar"><b>Weird:</b> A <a href="http://mjg59.dreamwidth.org/20187.html">bug exists</a> in some Lenovo computers (and perhaps in some others, too) that causes the firmware's boot manager to refuse to boot any boot loader that doesn't have the name <tt>Windows Boot Manager</tt> or <tt>Red Hat Enterprise Linux</tt>. If you have such a system, you must pass one of those names (in quotes) rather than <tt>rEFInd</tt> to <tt>efibootmgr</tt> via its <tt>-L</tt> option. This bug was reported to Lenovo in mid-November 2012, and by late 2013, at least some Lenovos were mercifully free of this bug.</p>
 
 <a name="efibootmgr">
-<li>On a UEFI-based system, type <tt><b>efibootmgr -c -l \\EFI\\refind\\refind_x64.efi -L rEFInd</b></tt> to add rEFInd to your EFI's list of available boot loaders, which it stores in NVRAM. Adjust the path to the binary as required if you install somewhere else. You may also need to include additional options if your ESP isn't on <tt>/dev/sda1</tt> or if your configuration is otherwise unusual; consult the <tt>efibootmgr</tt> man page for details. You may need to install this program on some systems; it's a standard part of most distributions' repositories. Also, if you're installing in Secure Boot mode, you must normally register <tt>shim.efi</tt> rather than the rEFInd binary, and rename <tt>refind_x64.efi</tt> to <tt>grubx64.efi</tt>.</li>
+<li>On a UEFI-based system, type <tt><b>efibootmgr -c -l \\EFI\\refind\\refind_x64.efi -L rEFInd</b></tt> to add rEFInd to your EFI's list of available boot loaders, which it stores in NVRAM. Adjust the path to the binary as required if you install somewhere else. You may also need to include additional options if your ESP isn't on <tt>/dev/sda1</tt> or if your configuration is otherwise unusual; consult the <tt>efibootmgr</tt> man page for details. You may need to install this program on some systems; it's a standard part of most distributions' repositories. Also, if you're installing in Secure Boot mode, you must normally register <tt>shim.efi</tt> rather than the rEFInd binary, and rename <tt>refind_x64.efi</tt> to <tt>grubx64.efi</tt>. Shim 0.7 and later enables you to keep rEFInd's usual name by adding a <tt>-u "shim.efi refind_x64.efi"</tt> option to your <tt>efibootmgr</tt> command line, though. Change the filenames to the ones used by your actual Shim and rEFInd binaries, respectively.</li>
 </a>
 
 <li>If other boot loaders are already installed, you can use <tt>efibootmgr</tt> to adjust their boot order. For instance, <b><tt>efibootmgr -o 3,7,2</tt></b> sets the firmware to try boot loader #3 first, followed by #7, followed by #2. (The program should have displayed a list of boot loaders when you added yours in the preceding step.) Place rEFInd's number first to set it as the default boot program.</li>
index c51d2cccd82a93036e32cff03625ba5d37bf9c10..13cfd7eadc92d6033bf7016af1a82e3183750eac 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/19/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 
 <p>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>
index 88b7cd7a705e371a4cfa076c4933789c581b5714..32f708b94b2cb91be9a423a03ea68f129550a7e2 100644 (file)
@@ -16,7 +16,7 @@
 <p class="subhead">by Roderick W. Smith, <a
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
-<p>Last Web page update: 9/13/2015</p>
+<p>Last Web page update: 9/19/2015</p>
 
 <p>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>
 
@@ -132,6 +132,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <ul>
 
+<li><b>0.9.2 (9/19/2015)</b>&mdash;Soon after releasing 0.9.1, I started receiving bug reports about problems with it and Shim 0.8. (See <a href="https://sourceforge.net/p/refind/discussion/general/thread/2c248b11/?limit=25#1324">this thread</a> for one such report.) It turns out that the problem was not a new bug in rEFInd, but rather a change from Shim 0.7 to Shim 0.8 that made it next to useless with rEFInd. Specifically, Shim 0.8 now de-registers itself from the EFI after a follow-on program launches another one. This is done to avoid problems in a boot path in which Shim launches <tt>fallback.efi</tt>, which in turn launches <i>another</i> Shim. This creates a new problem, though: rEFInd can validate just one binary before it's "cut off" from Shim. Since rEFInd's drivers are binaries, if you use a single driver, that means that you won't be able to launch anything that requires validation via Shim. I quickly discovered a workaround, which I've implemented in this release. I consider this a "band-aid" patch, though, because it relies on a quirk of Shim's logic to bypass its de-registration. As such, the workaround in this release may break with a future Shim. A true fix will take longer to develop. I want to release this workaround version to head off further problems in the near term, though. This version also introduces a new feature, which is also Shim-related: Since version 0.7, Shim has supported launching binaries other than <tt>grubx64.efi</tt> by passing them on the command line. (Actually, Shim 0.4 supported this, but it required a broken path specification.) I've added support for this feature to <tt>install.sh</tt>: Adding the <tt>--keepname</tt> option to install.sh causes the script to preserve rEFInd's regular filename and to register the approprirate follow-on parameters to have Shim launch rEFInd by that name. This works, but is likely to be more delicate than using the default Shim follow-on name of <tt>grubx64.efi</tt>. The advantage, of course, is that rEFInd needn't "lie" about its name, which makes for less confusion in filenames. For the moment, the RPM and Debian packages I build do <i>not</i> use this new naming feature, since I can't be sure what version of Shim might be picked up. These changes do not affect users who do not use Secure Boot.</li>
+
 <li><b>0.9.1 (9/13/2015)</b>&mdash;This version has improved the Discoverable Partitions Specification (DPS) support in a number of ways that should make it more reliable when <tt>/etc/fstab</tt> omits references to the root (<tt>/</tt>) partition or when the GPT read-only or do-not-automount options are used to control these features. A stray DPS-related debugging print command has also been removed. I've improved rEFInd's ability to guess the Linux distribution by having it examine <tt>/etc/lsb-release</tt> as well as <tt>/etc/os_release</tt>, and I've added an icon for Elementary OS. Finally, I've made improvements to rEFInd's handling of case-insensitive string comparisons, which were buggy on some EFIs, particularly when rEFInd was compiled with GNU-EFI. rEFInd is still at the mercy of the EFI and support libraries, but many problem cases should now be resolved.</li>
 
 <li><b>0.9.0 (7/26/2015</b>&mdash;This version gets a bump up to 0.9.0 mainly because of a highly user-visible new feature: <i>kernel folding.</i> With kernel folding active, multiple Linux kernels in a single directory appear as just one main-menu entry, which launches the most recent kernel (by file timestamp) by default. Older kernels appear on the first one's submenu (accessed by hitting F2 or Insert). You can disable this new feature by setting <tt>fold_linux_kernels false</tt> in <tt>refind.conf</tt>. Another new feature is support for the <a href="http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/">Discoverable Partitions Spec,</a> which enables rEFInd to locate the Linux root (<tt>/</tt>) partition without a <tt>refind_linux.conf</tt> or <tt>/etc/fstab</tt> entry. I know of no distribution that automatically sets up its partitions in this way, but if and when this starts to happen, rEFInd will be ready. Other changes are relatively minor: The Debian <tt>postinst</tt> script now calls <tt>install.sh</tt> with <tt>--localkeys</tt> if <tt>sbsign</tt> and <tt>openssl</tt> are available, which helps if using the Ubuntu PPA on a system with custom Secure Boot keys; I've fixed a packaging bug that prevented IA32 versions of filesystem drivers and <tt>gptsync</tt> to not be built in the PPA; <tt>mkrlconf.sh</tt> now refuses to run under OS X; rEFInd now skips checking for BIOS-mode boot code on UEFI-based PCs, which should speed it up a little; I've fixed a bug that caused rEFInd to crash if it found an existing but empty <tt>refind_linux.conf</tt> file; I've made minor code changes to enable rEFInd to build under GCC 5.1; and I've added a new icon for Kali Linux (provided by Francesco D'Eugenio).</li>
index b7cba260156ddebc91419c7731894a333664fc3d..fc3f321763ad4ea40a2fa535f15f5f1247c7d182 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 11/13/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 
 <p>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>
@@ -269,12 +269,17 @@ Windows 8, this isn't an option for it. Unfortunately, the Shim and PreLoader pr
     <tt>EFI/refind</tt> on the ESP.</li>
 
 <li>Follow the installation instructions for rEFInd on the <a
-    href="installing.html">Installing rEFInd</a> page; however, give rEFInd
-    the filename <tt>grubx64.efi</tt> and register <tt>shim.efi</tt> with
-    the EFI by using <tt>efibootmgr</tt> in Linux or <tt>bcdedit</tt> in
-    Windows. Be sure that rEFInd (as <tt>grubx64.efi</tt>),
-    <tt>shim.efi</tt>, and <tt>MokManager.efi</tt> all reside in the same
-    directory.</li>
+    href="installing.html">Installing rEFInd</a> page; however, you should
+    normally give rEFInd the filename <tt>grubx64.efi</tt> and register
+    <tt>shim.efi</tt> with the EFI by using <tt>efibootmgr</tt> in Linux or
+    <tt>bcdedit</tt> in Windows. Be sure that rEFInd (as
+    <tt>grubx64.efi</tt>), <tt>shim.efi</tt>, and <tt>MokManager.efi</tt>
+    all reside in the same directory. If you're using Shim 0.7 or later and
+    installing it under Linux, you may optionally keep rEFInd's
+    <tt>refind_x64.efi</tt> name; but you must then tell Shim to use rEFInd
+    by passing an additional <tt>-u "shim.efi refind_x64.efi"</tt> option
+    to <tt>efibootmgr</tt>. Change the filenames to the actual filenames
+    used by Shim and rEFInd, respectively.</li>
 
 <li>Copy the <tt>refind.cer</tt> file from the rEFInd package to your ESP,
     ideally to a location with few other files. (The rEFInd installation
index deb6c01ccd4f5ff2f8eb8a5477bcbd258d6d42cc..85e0bac4afbdbe007735d45b2f73b69dc9a4199b 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 4/19/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 
 <p>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>
index 5b71d3c6debb6763817a61fa51a4edcc600f0120..6f28a860ca5fd6aa014e5fa8709286fc33f39068 100644 (file)
@@ -165,6 +165,12 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
     <ul>
 
+    <li>As described in reference to version 0.9.2 on the <a
+       href="revisions.html">Revisions</a> 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.</li>
+
     <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
index 658a04f80b32d707248655b32301a141b49914f7..a873a15340a445dbe4a134e918a4f6208c73f468 100644 (file)
@@ -17,7 +17,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-9/13/2015, referencing rEFInd 0.9.1</p>
+9/19/2015, referencing rEFInd 0.9.2</p>
 
 
 <p>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>
index b8f4d92f0fa6d183122ff80ffa896a90ac79f24a..3a2cffc9b04262ec5fc444c15db3e6494cfa1b6f 100755 (executable)
@@ -22,6 +22,7 @@
 #    "--shim {shimfile}" to install a shim.efi file for Secure Boot
 #    "--preloader" is synonymous with "--shim"
 #    "--localkeys" to re-sign x86-64 binaries with a locally-generated key
+#    "--keepname" to keep refind_x64.efi name as such even when using shim
 #    "--yes" to assume a "yes" response to all prompts
 #
 # The "esp" option is valid only on Mac OS X; it causes
@@ -35,6 +36,7 @@
 #
 # Revision history:
 #
+# 0.9.2   -- Added --keepname option.
 # 0.8.7   -- Better detection of Secure Boot mode & fixed errors when copying
 #            Shim & MokManager files over themselves; fixed bug that caused
 #            inappropriate installation to EFI/BOOT/bootx64.efi
@@ -85,6 +87,7 @@ TargetDir=/EFI/refind
 LocalKeysBase="refind_local"
 ShimSource="none"
 ShimType="none"
+KeepName=0
 TargetShim="default"
 TargetX64="refind_x64.efi"
 TargetIA32="refind_ia32.efi"
@@ -128,6 +131,8 @@ GetParams() {
               ShimType=`basename $ShimSource`
               shift
               ;;
+         --keepname) KeepName=1
+              ;;
          --drivers | --alldrivers) InstallDrivers="all"
               ;;
          --nodrivers) InstallDrivers="none"
@@ -135,9 +140,9 @@ GetParams() {
          --yes) AlwaysYes=1
               ;;
          * ) echo "Usage: $0 [--notesp | --usedefault {device-file} | --root {dir} |"
-             echo "                     --ownhfs {device-file} ]"
-             echo "                  [--nodrivers | --alldrivers] [--shim {shim-filename}]"
-             echo "                  [--localkeys] [--yes]"
+             echo "                     --ownhfs {device-file} ] [--keepname]"
+             echo "                  [--nodrivers | --alldrivers]"
+             echo "                  [--localkeys] [--keepname] [--yes]"
              exit 1
       esac
       shift
@@ -154,6 +159,19 @@ GetParams() {
       echo "If you use --ownhfs, you may NOT use --usedefault! Aborting!"
       exit 1
    fi
+   if [[ "$KeepName" == 1 && "$ShimSource" == "none" ]] ; then
+      echo "The --keepname option is meaningful only in conjunction with --shim"
+      echo "or --preloader! Aborting!"
+      exit 1
+   fi
+   if [[ "$KeepName" == 1 && "$OSName" != "Linux" ]] ; then
+      echo "The --keepname option is valid only under Linux! Aborting!"
+      exit 1
+   fi
+   if [[ "$KeepName" == 1 && "$TargetDir" != "/EFI/BOOT" ]] ; then
+      echo "The --keepname option is incompatible with --usedefault! Aborting!"
+      exit 1
+   fi
    RLConfFile="$RootDir/boot/refind_linux.conf"
    EtcKeysDir="$RootDir/etc/refind.d/keys"
 } # GetParams()
@@ -276,6 +294,10 @@ SetVarsForBoot() {
       TargetIA32="bootia32.efi"
       TargetShim="bootx64.efi"
    fi
+   if [[ $KeepName == 1 ]] ; then
+      echo "Installation is to /EFI/BOOT, which is incompatible with --keepname! Aborting!"
+      exit 1
+   fi
 } # SetVarsForBoot()
 
 # Set variables for installation in EFI/Microsoft/Boot directory
@@ -283,6 +305,7 @@ SetVarsForMsBoot() {
    TargetDir="/EFI/Microsoft/Boot"
    if [[ $ShimSource == "none" ]] ; then
       TargetX64="bootmgfw.efi"
+      TargetIA32="bootmgfw.efi"
    else
       if [[ $ShimType == "shim.efi" || $ShimType == "shimx64.efi" ]] ; then
          TargetX64="grubx64.efi"
@@ -295,6 +318,11 @@ SetVarsForMsBoot() {
       fi
       TargetShim="bootmgfw.efi"
    fi
+   if [[ $KeepName == 1 ]] ; then
+      echo "Installation is to /EFI/Microsoft/Boot, which is incompatible with --keepname!"
+      echo "Aborting!"
+      exit 1
+   fi
 } # SetVarsForMsBoot()
 
 # TargetDir defaults to /EFI/refind; however, this function adjusts it as follows:
@@ -317,9 +345,9 @@ DetermineTargetDir() {
       SetVarsForMsBoot
       Upgrade=1
    fi
-   if [[ -f $InstallDir/EFI/refind/refind.conf && foofoo ]] ; then
+   if [[ -f $InstallDir/EFI/refind/refind.conf ]] ; then
       TargetDir="/EFI/refind"
-      if [[ $ShimSource == "none" ]] ; then
+      if [[ $ShimSource == "none" || $KeepName == 1 ]] ; then
          TargetX64="refind_x64.efi"
          TargetIA32="refind_ia32.efi"
       fi
@@ -657,7 +685,7 @@ SetupMacHfs() {
         <key>ProductName</key>
         <string>rEFInd</string>
         <key>ProductVersion</key>
-        <string>0.9.1</string>
+        <string>0.9.2</string>
 </dict>
 </plist>
 ENDOFHERE
@@ -934,7 +962,6 @@ FindMountedESP() {
 # If this fails, sets Problems=1
 AddBootEntry() {
    local PartNum
-   InstallIt="0"
    Efibootmgr=`which efibootmgr 2> /dev/null`
    if [[ "$Efibootmgr" ]] ; then
       InstallDisk=`grep "$InstallDir" /etc/mtab | cut -d " " -f 1 | cut -c 1-8`
@@ -952,20 +979,20 @@ AddBootEntry() {
             echo "manager. The boot order is being adjusted to make rEFInd the default boot"
             echo "manager. If this is NOT what you want, you should use efibootmgr to"
             echo "manually adjust your EFI's boot order."
-            "$Efibootmgr" -b $ExistingEntryBootNum -B &> /dev/null
-            InstallIt="1"
          fi
-      else
-         InstallIt="1"
+         "$Efibootmgr" -b $ExistingEntryBootNum -B &> /dev/null
       fi
 
-      if [[ $InstallIt == "1" ]] ; then
-         echo "Installing it!"
+      echo "Installing it!"
+      if [[ "$KeepName" == 0 ]] ; then
          "$Efibootmgr" -c -l "$EfiEntryFilename" -L "rEFInd Boot Manager" -d $InstallDisk -p $PartNum &> /dev/null
-         if [[ $? != 0 ]] ; then
-            EfibootmgrProblems=1
-            Problems=1
-         fi
+      else
+         "$Efibootmgr" -c -l "$EfiEntryFilename" -L "rEFInd Boot Manager" -d $InstallDisk -p $PartNum \
+                       -u "$TargetShim $TargetX64" &> /dev/null
+      fi
+      if [[ $? != 0 ]] ; then
+         EfibootmgrProblems=1
+         Problems=1
       fi
 
    else # efibootmgr not found
index 943905cbe0d8270528859c18de7862934d8ad375..bebb870e7827a7223380c5a5d222221070a45517 100644 (file)
@@ -1,6 +1,6 @@
 Summary: EFI boot manager software
 Name: refind
-Version: 0.9.1
+Version: 0.9.2
 Release: 1%{?dist}
 Summary: EFI boot manager software
 License: GPLv3
@@ -167,6 +167,8 @@ fi
 # wiping out the just-updated files.
 
 %changelog
+* Sat Sep 19 2015 R Smith <rodsmith@rodsbooks.com> - 0.9.2
+- Updated spec file for 0.9.2
 * Sun Sep 13 2015 R Smith <rodsmith@rodsbooks.com> - 0.9.1
 - Updated spec file for 0.9.1
 * Sun Jul 26 2015 R Smith <rodsmith@rodsbooks.com> - 0.9.0
index 451280e08c35395712b5eba50dfe6468a1317d44..9d191077a84ad05f7037906fa538966dc4093173 100644 (file)
@@ -173,7 +173,7 @@ static VOID AboutrEFInd(VOID)
 
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.9.1.2");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.9.2");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2015 Roderick W. Smith");