-0.6.12 (?/??/2013):
+0.6.12 (6/18/2013):
-------------------
+- Changed the 64-bit EFI shell included in the CD-R and USB flash drive
+ images to a version 2 shell that should support the "bcfg" command.
+
+- Added support for PreBootloader to refind.spec's built-in installation
+ script.
+
+- Added support for the Linux Foundation's PreLoader to install.sh. It's
+ treated just like shim, including using the --shim option (or, now,
+ --preloader); but it searches for and copies HashTool.efi rather than
+ MokManager.efi, and filenames are adjusted appropriately.
+
- Added code to determine Linux root filesystem from /etc/fstab file, if
it's on the same partition as the kernel and if the refind_linux.conf
file is not available. This enables rEFInd to boot Linux without any
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>\r
\r
<p>Originally written: 3/14/2012; last Web page update:\r
-5/13/2013, referencing rEFInd 0.6.11</p>\r
+6/18/2013, referencing rEFInd 0.6.12</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:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 4/19/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
<li>The ability to auto-detect Linux initial RAM disk files and to read Linux kernel options from a <tt>refind_linux.conf</tt> file. These features support (nearly) automatic handling of Linux kernels with embedded EFI stub loader support (a new feature with Linux 3.3.0).</li>
+<li>In the absence of a <tt>refind_linux.conf</tt> file, the ability to pass minimal Linux boot options to a kernel based on the contents of <tt>/etc/fstab</tt>. This is limited to cases in which the kernel resides on the Linux root (<tt>/</tt>) filesystem, though, and it won't work if the installation requires any unusual options.</li>
+
<li>Fixes to display problems on many UEFI-based PCs.</li>
<li>Beginning with version 0.6.10, a screen saver feature, activated by the <tt>screensaver <tt class="variable">seconds</tt></tt> token in <tt>refind.conf</tt>: Set <tt class="variable">seconds</tt> to the number of seconds before the screen will blank to prevent burn-in.</li>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
<ul>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.6.11/refind-src-0.6.11.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
- Development Kit 2 (EDK2)</a> to build my binary packages (below),
- although the <a href="http://sourceforge.net/projects/gnu-efi">GNU-EFI</a>
- development tools are also supported.</li>
-
-<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.6.11/refind-bin-0.6.11.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.6.12/refind-bin-0.6.12.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
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.6.11/refind-bin-gnuefi-0.6.11.zip/download">variant
+ href="http://sourceforge.net/projects/refind/files/0.6.12/refind-bin-gnuefi-0.6.12.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; but using GNU-EFI also means that this version
can't launch BIOS-mode OSes.</li>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.6.11/refind-0.6.11-1.x86_64.rpm/download">A
+ href="http://sourceforge.net/projects/refind/files/0.6.12/refind-0.6.12-1.x86_64.rpm/download">A
binary RPM file</a></b>—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
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.6.11/refind-0.6.11-1.src.rpm/download">source
+ href="http://sourceforge.net/projects/refind/files/0.6.12/refind-0.6.12-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.6.11/refind_0.6.11-1_amd64.deb/download">A
+ href="http://sourceforge.net/projects/refind/files/0.6.12/refind_0.6.12-1_amd64.deb/download">A
binary Debian package</a></b>—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
<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.</p>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.6.11/refind-cd-0.6.11.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.6.12/refind-cd-0.6.12.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
computer.</p>
<li><b><a
- href="http://sourceforge.net/projects/refind/files/0.6.11/refind-flashdrive-0.6.11.zip/download">A
+ href="http://sourceforge.net/projects/refind/files/0.6.12/refind-flashdrive-0.6.12.zip/download">A
USB flash drive image file</a></b>—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.6.12/refind-src-0.6.12.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
+ Development Kit 2 (EDK2)</a> to build my binary packages (above),
+ although the <a href="http://sourceforge.net/projects/gnu-efi">GNU-EFI</a>
+ development tools are also supported.</li>
+
<li><b><a href="https://sourceforge.net/p/refind/code">Source code via
git</a></b>—If you want to peruse the source code in your Web
browser or get the very latest version (including pre-release bug fixes
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
<td>When you specify this option, <tt>install.sh</tt> copies <i>all</i> the driver files for your architecture. You may want to remove unused driver files after you use this option, especially if your computer uses Secure Boot.</td>
</tr>
<tr>
- <td><tt>--shim <tt class="variable">shim-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.) 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 will launch, and you must use it to locate and install a public key. This 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> In the not-too-distant future, most distributions will provide their own shim programs, so you'll be able to point to them—for instance, in <tt>/boot/efi/EFI/fedora/shim.efi</tt>.</td>
+ <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—for instance, in <tt>/boot/efi/EFI/fedora/shim.efi</tt>.</td>
</tr>
<tr>
<td><tt>--localkeys</tt></td>
<li><a href="https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/Ia32/Shell.efi"><i>x</i>86 (32-bit) shell 2</a></li>
+<li><a href="http://dl.dropbox.com/u/17629062/Shell2.zip">Alternate <i>x</i>86-64 (64-bit) shell 2 for older EFIs</a></li>
+
</ul>
-<p>Note that the shell included in rEFInd's CD-R image version is a version 1 shell, so you can't use it for this purpose. You can, however, copy rEFInd's files from the CD-R. You can even launch the version 1 shell included with rEFInd and then use that to launch a version 2 shell. Once you've booted the shell, you can proceed as follows:</p>
+<p>Note that the IA32 shell included in rEFInd's CD-R image version is a version 1 shell, so you can't use it for this purpose. You can, however, copy rEFInd's files from the CD-R. You can even launch the version 1 shell included with rEFInd and then use that to launch a version 2 shell. The <i>x</i>86-64 shell on the CD-R is the alternate shell, which should work on any <i>x</i>86-64 computer. Once you've booted the shell, you can proceed as follows:</p>
<ol>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/19/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
<p>If you installed rEFInd 0.6.0 or later with its <tt>install.sh</tt> script from your regular Linux installation, chances are everything's set up; you should be able to reboot and see your Linux kernels as boot options. If you installed manually, from OS X, or from an emergency system, though, you may need to do a couple of things manually:
-<ol>
+<ul>
<li>Copy the relevant driver file for your filesystem and architecture to
the <tt>drivers</tt> or <tt>drivers_<tt class="variable">arch</tt></tt>
<li>Create a <tt>refind_linux.conf</tt> file in your <tt>/boot</tt>
directory. The <tt>mkrlconf.sh</tt> script that comes with rEFInd
should do this job, or you can do it manually as described <a
- href="#efistub">later.</a></li>
+ href="#efistub">later.</a> Starting with version 0.6.12, rEFInd can
+ create minimal boot options from <tt>/etc/fstab</tt>, if <tt>/boot</tt>
+ is <i>not</i> a separate partition, so a <tt>refind_linux.conf</tt>
+ file may not be strictly necessary. It remains desirable, though, and
+ is necessary if <tt>/boot</tt> is on a separate partition or if you
+ need unusual kernel options to boot your computer.</li>
-</ol>
+</ul>
<p>When you reboot, you should see rEFInd options for your Linux kernels. If they work, your job is done, although you might want to apply some of the tweaks described in the <a href="#longterm">maintenance-free setup</a> section. If you have problems, you may need to adjust the <tt>refind_linux.conf</tt> file, as described in the <a href="#efistub">detailed configuration section.</a></p>
<li>Copy the <tt>/boot/refind_linux.conf</tt> file to the same directory to
which you copied your kernel. If this file doesn't exist, create it by
running (as <tt>root</tt>) the <tt>mkrlconf.sh</tt> script that came
- with rEFInd.</li>
+ with rEFInd. This step may not be strictly necessary if <tt>/boot</tt>
+ is an ordinary directory on your root (<tt>/</tt>) partition.</li>
<li>Reboot. You should now see a new entry for launching the Linux kernel
that you copied. Try the option. If it works, great. If not, you may
without changes on many installations, but you may need to tweak it for
some.</li>
+<li>If rEFInd can't find a <tt>refind_linux.conf</tt> file in the directory
+ that holds the kernel, the program looks for a file called
+ <tt>/etc/fstab</tt> on the partition that holds the kernel. If this
+ standard Linux file is present, rEFInd uses it to identify the root
+ (<tt>/</tt>) filesystem and creates two sets of Linux kernel boot
+ options: One set launches the kernel normally, but with minimal
+ options, and the other set launches the kernel into single-user mode.
+ This step can get a computer to boot without any rEFInd-specific
+ configuration files, aside from <tt>refind.conf</tt> in rEFInd's own
+ directory, but only if <tt>/boot</tt> is not a separate partition. The
+ intent is to facilitate the use of rEFInd as an emergency boot manager
+ or to help users who must install rEFInd from OS X or Windows. Note
+ that rEFInd uses <tt>/etc/fstab</tt> only if <tt>refind_linux.conf</tt>
+ is <i>not</i> found.</li>
+
</ol>
<p>The intent of this system is that distribution maintainers can place their kernels, initial RAM disks, and a <tt>refind_linux.conf</tt> file in their own subdirectories on the ESP, on EFI-accessible <tt>/boot</tt> partitions, or in <tt>/boot</tt> directories on EFI-accessible Linux root (<tt>/</tt>) partitions. rEFInd will detect these kernels and create one main menu entry for each kernel. Each entry will implement as many options as there are lines in the <tt>refind_linux.conf</tt> file. In this way, two or more distributions can each maintain their boot loader entries, without being too concerned about who maintains rEFInd as a whole.</p>
<p class="subhead">by Roderick W. Smith, <a
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
-<p>Last Web page update: 5/11/2013</p>
+<p>Last Web page update: 6/18/2013</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.6.12 (6/18/2013)</b>—This version changes relatively little code, but it adds one feature that will simplify rEFInd installation for some users: The program can now deduce minimal Linux boot options based on an <tt>/etc/fstab</tt> file <i>if</i> that file is on the same partition as the kernel (in other words, if you do <i>not</i> use a separate <tt>/boot</tt> partition). Put another way, <tt>refind_linux.conf</tt> is no longer required for some installations, although it's still desirable. If you're already using rEFInd, this isn't likely to be important, but it can help when you're just starting out. In addition, this version adds support for the Linux Foundation's PreBootloader in the <tt>install.sh</tt> script. I've also changed the default 64-bit shell included on the CD-R and USB flash drive images to a modified version 2 shell, so as to enable use of the <tt>bcfg</tt> command to help install rEFInd (or make other changes to the firmware's boot manager configuration).</li>
+
<li><b>0.6.11 (5/13/2013)</b>—Two new features may have a noticeable affect for many users: First, rEFInd now ignores symbolic links on filesystems that support them. I've implemented this change because I've been receiving too many reports from users who want to remove redundant or non-functional Linux boot entries caused by symbolic links created by distributions. Although this is possible by editing the <tt>dont_scan_dirs</tt> or <tt>dont_scan_files</tt> options in <tt>refind.conf</tt>, telling users how to do this has become tedious. If you <i>want</i> to use links to create multiple entries for one kernel or boot loader, use hard links instead of symbolic links. The second major user-visible change is that rEFInd now tries to guess the distribution type based on the naming of the kernel file (effective only for Fedora and RHEL) or the contents of the <tt>/etc/os-release</tt> file (effective only if the installation does <i>not</i> have a separate </tt>/boot</tt> partition or if <tt>/etc/os-release</tt> is copied to that location on the partition that holds the kernel). There are several other minor cosmetic issues that some users may notice, including icons for Lubuntu and Kubuntu and a change in the name of the "Reboot to Firmware User Interface" option to "Reboot to Computer Setup Utility." I've also fixed a bug in <tt>gptsync</tt> that could cause it to hang if the disk had too few GPT partitions. Finally, I've improved the <tt>install.sh</tt> script so that it works better from a path with directory names that include spaces.</li>
<li><b>0.6.10 (5/5/2013)</b>—This version adds a number of minor improvements: The ability to create multiple screen shots under a sequence of names rather than using just one name; a new screen saver feature, activated by the <tt>screensaver</tt> token in <tt>refind.conf</tt>; and an option to reboot the computer into the firmware's setup utility on computers that support this feature. I've also added an OS for ChromeOS (<tt>os_chrome.icns</tt>), and I've updated the LodePNG library to the latest version, which might improve rendering of some PNG files.</li>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 11/13/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 4/19/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-5/5/2013, referencing rEFInd 0.6.10</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
<ul>
+ <li>I've been receiving reports of blank screens when using rEFInd on
+ some recent Mac models. I've investigated this with the help of one
+ user, and I suspect that Apple has made changes to its firmware
+ that are likely to affect just about any EFI program. I don't know
+ how to fix the problem at the moment, though; I need both
+ documentation and access to an afflicted computer to do the
+ necessary work, and I have neither.</li>
+
<li>The <a href="http://www.rodsbooks.com/gb-hybrid-efi/">Gigabyte
Hybrid EFI</a> has a bug that causes the allegedly case-insensitive
<tt>StriCmp()</tt> function to perform a case-sensitive comparison.
href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
<p>Originally written: 3/14/2012; last Web page update:
-5/13/2013, referencing rEFInd 0.6.11</p>
+6/18/2013, referencing rEFInd 0.6.12</p>
<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
# "--nodrivers" to suppress driver installation (default in Linux is
# driver used on /boot; --nodrivers is OS X default)
# "--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
# "--yes" to assume a "yes" response to all prompts
#
#
# Revision history:
#
+# 0.6.12 -- Added support for PreLoader as well as for shim
# 0.6.11 -- Improvements in script's ability to handle directories with spaces
# in their names
# 0.6.9 -- Install gptsync on Macs
TargetDir=/EFI/refind
LocalKeysBase="refind_local"
ShimSource="none"
+ShimType="none"
TargetShim="default"
TargetX64="refind_x64.efi"
TargetIA32="refind_ia32.efi"
;;
--localkeys) LocalKeys=1
;;
- --shim) ShimSource="$2"
+ --shim | --preloader) ShimSource="$2"
+ ShimType=`basename $ShimSource`
shift
;;
--drivers | --alldrivers) InstallDrivers="all"
if [[ "$ShimSource" != "none" ]] ; then
if [[ -f "$ShimSource" ]] ; then
- TargetX64="grubx64.efi"
- MokManagerSource=`dirname "$ShimSource"`/MokManager.efi
+ if [[ $ShimType == "shimx64.efi" || $ShimType == "shim.efi" ]] ; then
+ TargetX64="grubx64.efi"
+ MokManagerSource=`dirname "$ShimSource"`/MokManager.efi
+ elif [[ $ShimType == "preloader.efi" || $ShimType == "PreLoader.efi" ]] ; then
+ TargetX64="loader.efi"
+ MokManagerSource=`dirname "$ShimSource"`/HashTool.efi
+ else
+ echo "Unknown shim/PreBootloader filename: $ShimType!"
+ echo "Known filenames are shimx64.efi, shim.efi, and PreLoader.efi. Aborting!"
+ exit 1
+ fi
else
- echo "The specified shim file, $ShimSource, doesn't exist!"
+ echo "The specified shim/PreBootloader file, $ShimSource, doesn't exist!"
echo "Aborting installation!"
exit 1
fi
TargetX64="bootx64.efi"
TargetIA32="bootia32.efi"
else
- TargetX64="grubx64.efi"
+ if [[ $ShimType == "shim.efi" || $ShimType == "shimx64.efi" ]] ; then
+ TargetX64="grubx64.efi"
+ elif [[ $ShimType == "preloader.efi" || $ShimType == "PreLoader.efi" ]] ; then
+ TargetX64="loader.efi"
+ else
+ echo "Unknown shim/PreBootloader type: $ShimType"
+ echo "Aborting!"
+ exit 1
+ fi
TargetIA32="bootia32.efi"
TargetShim="bootx64.efi"
fi
if [[ $ShimSource == "none" ]] ; then
TargetX64="bootmgfw.efi"
else
- TargetX64="grubx64.efi"
+ if [[ $ShimType == "shim.efi" || $ShimType == "shimx64.efi" ]] ; then
+ TargetX64="grubx64.efi"
+ elif [[ $ShimType == "preloader.efi" || $ShimType == "PreLoader.efi" ]] ; then
+ TargetX64="loader.efi"
+ else
+ echo "Unknown shim/PreBootloader type: $ShimType"
+ echo "Aborting!"
+ exit 1
+ fi
TargetShim="bootmgfw.efi"
fi
}
Summary: EFI boot manager software
Name: refind
-Version: 0.6.11
+Version: 0.6.12
Release: 1%{?dist}
Summary: EFI boot manager software
License: GPLv3
declare VarFile=`ls -d /sys/firmware/efi/vars/SecureBoot* 2> /dev/null`
declare ShimFile=`find /boot -name shim\.efi 2> /dev/null | head -n 1`
+if [[ ! -n $ShimFile ]] ; then
+ declare ShimFile=`find /boot -name PreLoader\.efi 2> /dev/null | head -n 1`
+fi
declare SBSign=`which sbsign 2> /dev/null`
declare OpenSSL=`which openssl 2> /dev/null`
# wiping out the just-updated files.
%changelog
-* Mon May 13 2013 R Smith <rodsmith@rodsbooks.com> - 0.6.11
-- Created spec file for 0.6.11 release
+* Tue Jun 18 2013 R Smith <rodsmith@rodsbooks.com> - 0.6.12
+- Created spec file for 0.6.12 release
if (AboutMenu.EntryCount == 0) {
AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
- AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.11.2");
+ AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.12");
AddMenuInfoLine(&AboutMenu, L"");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2013 Roderick W. Smith");
ScanVolumes();
ReadConfig(CONFIG_FILE_NAME);
- PauseForKey();
InitScreen();
WarnIfLegacyProblems();
MainMenu.TimeoutSeconds = GlobalConfig.Timeout;