From e366a10e438344bd1331f2de89d177079a91ba76 Mon Sep 17 00:00:00 2001 From: srs5694 Date: Sat, 19 Sep 2015 11:01:43 -0400 Subject: [PATCH] Version 0.9.2 release --- NEWS.txt | 20 +++++++++--- debian/changelog | 6 ++++ debian/copyright | 14 +++++++++ docs/refind/bootmode.html | 2 +- docs/refind/configfile.html | 2 +- docs/refind/drivers.html | 2 +- docs/refind/features.html | 2 +- docs/refind/getting.html | 18 +++++------ docs/refind/index.html | 2 +- docs/refind/installing.html | 24 +++++++++++---- docs/refind/linux.html | 2 +- docs/refind/revisions.html | 4 ++- docs/refind/secureboot.html | 19 +++++++----- docs/refind/themes.html | 2 +- docs/refind/todo.html | 6 ++++ docs/refind/using.html | 2 +- install.sh | 61 ++++++++++++++++++++++++++----------- refind.spec | 4 ++- refind/main.c | 2 +- 19 files changed, 140 insertions(+), 54 deletions(-) diff --git a/NEWS.txt b/NEWS.txt index c049f13..1d23782 100644 --- 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): ------------------ diff --git a/debian/changelog b/debian/changelog index 57137e7..aaf72bb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +refind (0.9.2-0ppa1) trusty; urgency=medium + + * Version bump + + -- Roderick Smith Sat, 19 Sep 2015 10:42:58 -0400 + refind (0.9.1-0ppa1) trusty; urgency=medium * Version bump diff --git a/debian/copyright b/debian/copyright index 3a53c6c..1ceeff4 100644 --- a/debian/copyright +++ b/debian/copyright @@ -9,6 +9,20 @@ Upstream Authors: Dave Vasilevsky John Bressler Stefan Agner + James Bottomley + Kay Sievers + Harald Hoyer + 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 diff --git a/docs/refind/bootmode.html b/docs/refind/bootmode.html index d3c8ce5..dd29465 100644 --- a/docs/refind/bootmode.html +++ b/docs/refind/bootmode.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 3/14/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

+9/19/2015, referencing rEFInd 0.9.2

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!

diff --git a/docs/refind/configfile.html b/docs/refind/configfile.html index 599b3b5..b0c91f1 100644 --- a/docs/refind/configfile.html +++ b/docs/refind/configfile.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 3/14/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

+9/19/2015, referencing rEFInd 0.9.2

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!

diff --git a/docs/refind/drivers.html b/docs/refind/drivers.html index d6ea5b5..9b99a00 100644 --- a/docs/refind/drivers.html +++ b/docs/refind/drivers.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 4/19/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

+9/19/2015, referencing rEFInd 0.9.2

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!

diff --git a/docs/refind/features.html b/docs/refind/features.html index 5dda427..d1ca426 100644 --- a/docs/refind/features.html +++ b/docs/refind/features.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 3/14/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

+9/19/2015, referencing rEFInd 0.9.2

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!

diff --git a/docs/refind/getting.html b/docs/refind/getting.html index 6daa4cc..f4720e9 100644 --- a/docs/refind/getting.html +++ b/docs/refind/getting.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 3/14/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

+9/19/2015, referencing rEFInd 0.9.2

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!

@@ -138,7 +138,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

  • A + href="http://sourceforge.net/projects/refind/files/0.9.2/refind-bin-0.9.2.zip/download">A binary zip file—Download this if you want to install rEFInd and/or its filesystem drivers on an x86 or x86-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

    href="installing.html">Installing rEFInd page. Some users of Arch Linux have reported problems booting some specific Arch Linux kernels with rEFInd and some other tools. For them, a variant + href="http://sourceforge.net/projects/refind/files/0.9.2/refind-bin-gnuefi-0.9.2.zip/download">variant package exists in which the x86-64 binary was compiled with GNU-EFI rather than the usual TianoCore EDK2. This change helps some users with this problem.
  • A + href="http://sourceforge.net/projects/refind/files/0.9.2/refind-0.9.2-1.x86_64.rpm/download">A binary RPM file—If you use an RPM-based x86-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

    rEFInd page) as part of the installation process. Distribution maintainers can examine the refind.spec file in the source package and tweak it to their needs. The source + href="http://sourceforge.net/projects/refind/files/0.9.2/refind-0.9.2-1.src.rpm/download">source RPM file might or might not build on your system as-is; it relies on assumptions about the locations of the GNU-EFI development files.
  • A + href="http://sourceforge.net/projects/refind/files/0.9.2/refind_0.9.2-1_amd64.deb/download">A binary Debian package—If you use an x86-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 + href="http://sourceforge.net/projects/refind/files/0.9.2/refind-cd-0.9.2.zip/download">A CD-R image file—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 /dev/sdd. This procedure should work even on a BIOS-booted computer.

  • A + href="http://sourceforge.net/projects/refind/files/0.9.2/refind-flashdrive-0.9.2.zip/download">A USB flash drive image file—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 dd or some other low-level disk copying utility.
  • A + href="http://sourceforge.net/projects/refind/files/0.9.2/refind-src-0.9.2.zip/download">A source code zip file—This is useful if you want to compile the software locally. Note that I use Linux with the TianoCore EFI diff --git a/docs/refind/index.html b/docs/refind/index.html index cec1275..01c5eb4 100644 --- a/docs/refind/index.html +++ b/docs/refind/index.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

    Originally written: 3/14/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

    +9/19/2015, referencing rEFInd 0.9.2

    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!

    diff --git a/docs/refind/installing.html b/docs/refind/installing.html index 4bd53f8..8497bf8 100644 --- a/docs/refind/installing.html +++ b/docs/refind/installing.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

    Originally written: 3/14/2012; last Web page update: -9/14/2015, referencing rEFInd 0.9.1

    +9/19/2015, referencing rEFInd 0.9.2

    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!

    @@ -226,11 +226,11 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

    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:

    -
    # rpm -Uvh refind-0.9.1-1.x86_64.rpm
    +
    # rpm -Uvh refind-0.9.2-1.x86_64.rpm

    On a Debian-based system, the equivalent command is:

    -
    # dpkg -i refind_0.9.1-1_amd64.deb
    +
    # dpkg -i refind_0.9.2-1_amd64.deb

    Either command produces output similar to that described for using the install.sh script, 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.

    @@ -403,13 +403,21 @@ Unmounting install dir refind_linux.conf, though—for instance, to add dolvm to the boot options on Gentoo systems that use LVM.
  • +
  • If you pass the --shim 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 grubx64.efi. 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 + --keepname option to install.sh.
  • +

In addition to these quirks, you should be aware of some options that install.sh supports to enable you to customize your installation in various ways. The syntax for install.sh is as follows:

 install.sh [--notesp | --usedefault device-file | --root mount-point | \
-            --ownhfs device-file ] \
+            --ownhfs device-file ] [--keepname ] \
            [--nodrivers | --alldrivers] [--shim shim-filename] [--localkeys] [--yes]
 
@@ -446,12 +454,16 @@ install.sh [--notesp | --usedefault device-file | --ro --shim shim-filename or --preloader preloader-filename - If you pass this option to install.sh, the script will copy the specified shim program file to the target directory, copy the MokManager.efi file from the shim program file's directory to the target directory, copy the 64-bit version of rEFInd as grubx64.efi, and register shim with the firmware. (If you also specify --usedefault, the NVRAM registration is skipped.) When the target file is identified as PreLoader, much the same thing happens, but install.sh copies HashTool.efi instead of MokManager.efi and copies rEFInd as loader.efi rather than as grubx64.efi. 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 keys subdirectory under the name refind.cer. Note that I'm not providing a shim binary myself, but you can download one from here. Some distributions also provide their own shim programs, so can point to them—for instance, in /boot/efi/EFI/fedora/shim.efi. + If you pass this option to install.sh, the script will copy the specified shim program file to the target directory, copy the MokManager.efi file from the shim program file's directory to the target directory, copy the 64-bit version of rEFInd as grubx64.efi, and register shim with the firmware. (If you also specify --usedefault, the NVRAM registration is skipped. If you also use --keepname, the renaming to grubx64.efi is skipped.) When the target file is identified as PreLoader, much the same thing happens, but install.sh copies HashTool.efi instead of MokManager.efi and copies rEFInd as loader.efi rather than as grubx64.efi. 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 keys subdirectory under the name refind.cer. Note that I'm not providing a shim binary myself, but you can download one from here. Some distributions also provide their own shim programs, so can point to them—for instance, in /boot/efi/EFI/fedora/shim.efi. --localkeys This option tells install.sh to generate a new Machine Owner Key (MOK), store it in /etc/refind.d/keys as refind_local.*, 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 openssl and sbsign binaries be installed. The former is readily available in most distributions' repositories, but the latter is not, so this option is not the default. + + --keepname + This option is useful only in conjunction with --shim. It tells install.sh to keep rEFInd's regular filename (typically refind_x64.efi) when used with shim, rather than rename the binary to grubx64.efi. 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 --usedefault and is unavailable when run under OS X or without the --shim option. If the script discovers an existing rEFInd installation under EFI/BOOT or EFI/Microsoft/Boot and no other rEFInd installation when this option is used, it will abort. + --yes This option causes the script to assume a Y input to every yes/no prompt that can be generated under certain conditions, such as if you specify --shim but install.sh 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. @@ -499,7 +511,7 @@ Filesystem 1K-blocks Used Available Use% Mounted on -
  • On a UEFI-based system, type efibootmgr -c -l \\EFI\\refind\\refind_x64.efi -L rEFInd 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 /dev/sda1 or if your configuration is otherwise unusual; consult the efibootmgr 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 shim.efi rather than the rEFInd binary, and rename refind_x64.efi to grubx64.efi.
  • +
  • On a UEFI-based system, type efibootmgr -c -l \\EFI\\refind\\refind_x64.efi -L rEFInd 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 /dev/sda1 or if your configuration is otherwise unusual; consult the efibootmgr 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 shim.efi rather than the rEFInd binary, and rename refind_x64.efi to grubx64.efi. Shim 0.7 and later enables you to keep rEFInd's usual name by adding a -u "shim.efi refind_x64.efi" option to your efibootmgr command line, though. Change the filenames to the ones used by your actual Shim and rEFInd binaries, respectively.
  • If other boot loaders are already installed, you can use efibootmgr to adjust their boot order. For instance, efibootmgr -o 3,7,2 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.
  • diff --git a/docs/refind/linux.html b/docs/refind/linux.html index c51d2cc..13cfd7e 100644 --- a/docs/refind/linux.html +++ b/docs/refind/linux.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

    Originally written: 3/19/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

    +9/19/2015, referencing rEFInd 0.9.2

    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!

    diff --git a/docs/refind/revisions.html b/docs/refind/revisions.html index 88b7cd7..32f708b 100644 --- a/docs/refind/revisions.html +++ b/docs/refind/revisions.html @@ -16,7 +16,7 @@

    by Roderick W. Smith, rodsmith@rodsbooks.com

    -

    Last Web page update: 9/13/2015

    +

    Last Web page update: 9/19/2015

    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!

    @@ -132,6 +132,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      +
    • 0.9.2 (9/19/2015)—Soon after releasing 0.9.1, I started receiving bug reports about problems with it and Shim 0.8. (See this thread 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 fallback.efi, which in turn launches another 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 grubx64.efi 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 install.sh: Adding the --keepname 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 grubx64.efi. 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 not 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.
    • +
    • 0.9.1 (9/13/2015)—This version has improved the Discoverable Partitions Specification (DPS) support in a number of ways that should make it more reliable when /etc/fstab omits references to the root (/) 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 /etc/lsb-release as well as /etc/os_release, 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.
    • 0.9.0 (7/26/2015—This version gets a bump up to 0.9.0 mainly because of a highly user-visible new feature: kernel folding. 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 fold_linux_kernels false in refind.conf. Another new feature is support for the Discoverable Partitions Spec, which enables rEFInd to locate the Linux root (/) partition without a refind_linux.conf or /etc/fstab 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 postinst script now calls install.sh with --localkeys if sbsign and openssl 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 gptsync to not be built in the PPA; mkrlconf.sh 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 refind_linux.conf 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).
    • diff --git a/docs/refind/secureboot.html b/docs/refind/secureboot.html index b7cba26..fc3f321 100644 --- a/docs/refind/secureboot.html +++ b/docs/refind/secureboot.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      Originally written: 11/13/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

      +9/19/2015, referencing rEFInd 0.9.2

      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!

      @@ -269,12 +269,17 @@ Windows 8, this isn't an option for it. Unfortunately, the Shim and PreLoader pr EFI/refind on the ESP.
    • Follow the installation instructions for rEFInd on the Installing rEFInd page; however, give rEFInd - the filename grubx64.efi and register shim.efi with - the EFI by using efibootmgr in Linux or bcdedit in - Windows. Be sure that rEFInd (as grubx64.efi), - shim.efi, and MokManager.efi all reside in the same - directory.
    • + href="installing.html">Installing rEFInd page; however, you should + normally give rEFInd the filename grubx64.efi and register + shim.efi with the EFI by using efibootmgr in Linux or + bcdedit in Windows. Be sure that rEFInd (as + grubx64.efi), shim.efi, and MokManager.efi + 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 + refind_x64.efi name; but you must then tell Shim to use rEFInd + by passing an additional -u "shim.efi refind_x64.efi" option + to efibootmgr. Change the filenames to the actual filenames + used by Shim and rEFInd, respectively.
    • Copy the refind.cer file from the rEFInd package to your ESP, ideally to a location with few other files. (The rEFInd installation diff --git a/docs/refind/themes.html b/docs/refind/themes.html index deb6c01..85e0bac 100644 --- a/docs/refind/themes.html +++ b/docs/refind/themes.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      Originally written: 4/19/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

      +9/19/2015, referencing rEFInd 0.9.2

      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!

      diff --git a/docs/refind/todo.html b/docs/refind/todo.html index 5b71d3c..6f28a86 100644 --- a/docs/refind/todo.html +++ b/docs/refind/todo.html @@ -165,6 +165,12 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

        +
      • As described in reference to version 0.9.2 on the Revisions 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.
      • +
      • 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 diff --git a/docs/refind/using.html b/docs/refind/using.html index 658a04f..a873a15 100644 --- a/docs/refind/using.html +++ b/docs/refind/using.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

        Originally written: 3/14/2012; last Web page update: -9/13/2015, referencing rEFInd 0.9.1

        +9/19/2015, referencing rEFInd 0.9.2

        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!

        diff --git a/install.sh b/install.sh index b8f4d92..3a2cffc 100755 --- a/install.sh +++ b/install.sh @@ -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() { ProductName rEFInd ProductVersion - 0.9.1 + 0.9.2 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 diff --git a/refind.spec b/refind.spec index 943905c..bebb870 100644 --- a/refind.spec +++ b/refind.spec @@ -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 - 0.9.2 +- Updated spec file for 0.9.2 * Sun Sep 13 2015 R Smith - 0.9.1 - Updated spec file for 0.9.1 * Sun Jul 26 2015 R Smith - 0.9.0 diff --git a/refind/main.c b/refind/main.c index 451280e..9d19107 100644 --- a/refind/main.c +++ b/refind/main.c @@ -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"); -- 2.39.2