]> code.delx.au - refind/blobdiff - docs/refind/installing.html
New memory tester icon; refinement of progam-launch code.
[refind] / docs / refind / installing.html
index d3b54245b273210b2aedcb94425faeab9285e27b..dcb4a7e0a3b3b4aee89bf1155b46f0b74074e4b8 100644 (file)
@@ -15,7 +15,7 @@
 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>
+8/7/2013, referencing rEFInd 0.7.3</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>
@@ -182,7 +182,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <li class="tight"><a href="#addons">Installing Additional Components</a></li>
 
-<li class="tight"><a href="#sluggish">Fixing a Sluggish Macintosh Boot</a>
+<li class="tight"><a href="#sluggish">Fixing a  Macintosh Boot</a>
 
    <ul>
 
@@ -206,11 +206,11 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Beginning with version 0.6.2, I've included RPM and Debian package files 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.6.10-1.x86_64.rpm</tt></pre>
+<pre class="listing"># <tt class="userinput">rpm -Uvh refind-0.6.11-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.6.10-1_amd64.deb</tt></pre>
+<pre class="listing"># <tt class="userinput">dpkg -i refind_0.6.11-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.</p>
 
@@ -380,8 +380,8 @@ install.sh [--esp | --usedefault <tt class="variable">device-file</tt> | --root
    <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&mdash;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&mdash;for instance, in <tt>/boot/efi/EFI/fedora/shim.efi</tt>.</td>
 </tr>
 <tr>
    <td><tt>--localkeys</tt></td>
@@ -604,9 +604,11 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 
 <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>
 
@@ -832,7 +834,7 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 
 <li><b><a
     href="http://tianocore.git.sourceforge.net/git/gitweb.cgi?p=tianocore/edk2;a=blob_plain;f=EdkShellBinPkg/FullShell/X64/Shell_Full.efi;hb=HEAD"><tt>shell.efi</tt></a></b>&mdash;This
-    file, placed in the ESP's <tt>efi/tools</tt> directory, adds the
+    file, placed in the ESP's <tt>EFI/tools</tt> directory, adds the
     ability to launch a text-mode EFI shell from rEFInd. Note that the
     download link is to a 64-bit binary that must be renamed before rEFInd
     will recognize it. Additional shell download links appear on the <a
@@ -840,6 +842,24 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
     Linux wiki,</a> and on other sites; try a Web search if the shell you
     find doesn't work to your satisfaction.</li>
 
+<li><b><a
+    href="http://www.memtest86.com/download.htm">Memtest86</a></b>&mdash;This
+    is a popular tool for performing basic hardware tests, and especially
+    memory tests. rEFInd recognizes this program when it is stored in the
+    <tt>EFI/tools</tt>, <tt>EFI/tools/memtest</tt>,
+    <tt>EFI/tools/memtest86</tt>, <tt>EFI/memtest</tt>, or
+    <tt>EFI/memtest86</tt> directory, with a program filename of
+    <tt>memtest86.efi</tt>, <tt>memtest86_x64.efi</tt>,
+    <tt>memtest86x64.efi</tt>, or <tt>bootx64.efi</tt>. (Change
+    <tt>x64</tt> to <tt>ia32</tt> on IA-32 systems.) Be sure to download
+    the EFI version of the program. If you get the USB flash drive version,
+    you should mount the flash drive's ESP (partition 2) and copy the
+    <tt>EFI/BOOT</tt> directory to your own ESP's
+    <tt>EFI/tools/memtest</tt> or other Memtest86 directory name, as just
+    specified. rEFInd should then recognize it, provided the
+    <tt>showtools</tt> line includes the <tt>memtest</tt> or
+    <tt>memtest86</tt> token.</li>
+
 <li><b><tt>gptsync.efi</tt> or <tt>gptsync_<tt
     class="variable">arch</tt>.efi</tt></b>&mdash;This program creates a <a
     href="http://www.rodsbooks.com/gdisk/hybrid.html">hybrid MBR</a> from
@@ -902,11 +922,13 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 
 <p>The biggest drawback to this approach is that you won't be able to edit the rEFInd configuration file or move rEFInd-related binaries from an EFI shell if you install it in this way, since Apple's HFS+ driver for EFI is read-only. (The same is true of rEFInd's HFS+ driver, so it won't help you overcome this limitation.) You may also be limited in making changes to your rEFInd configuration from Linux or other OSes, too, since Linux's HFS+ drivers disable write support by default on volumes with an active journal. You can force write access by using the <tt>force</tt> option to <tt>mount</tt>; however, this procedure is noted as being risky in the Linux HFS+ documentation, so I don't recommend doing this on a regular basis. As a compromise, you might try creating a small non-journaled HFS+ volume that's dedicated to holding rEFInd. You could even mount it as the Linux <tt>/boot</tt> partition, in which case it would also hold the Linux kernel and related files. You'll need to install rEFInd manually if you try this.</p>
 
+<p>A variant of this solution is suggested in <a href="http://www.sparxeng.com/blog/software/fixing-slow-boot-on-a-triple-boot-mountain-lion-mac">this blog post,</a> which recommends placing rEFInd on an HFS+ volume on the first SATA channel. (In the blogger's case, that channel used to hold an optical drive, but that drive was replaced by a hard disk.)</p>
+
 <a name="fallback">
 <h3>Using the Fallback Filename</h3>
 </a>
 
-<p>I've received one report that installing rEFInd to the ESP using the fallback filename (<tt>EFI/BOOT/bootx64.efi</tt> on most systems, or <tt>EFI/BOOT/bootia32.efi</tt> on very old Macs) can work around the problem.</p>
+<p>I've received a few reports that installing rEFInd to the ESP using the fallback filename (<tt>EFI/BOOT/bootx64.efi</tt> on most systems, or <tt>EFI/BOOT/bootia32.efi</tt> on very old Macs) can work around the problem.</p>
 
 <a name="clearing">
 <h3>Clearing the NVRAM Entries</h3>