]> code.delx.au - refind/blobdiff - docs/refind/installing.html
Version 0.10.0 release.
[refind] / docs / refind / installing.html
index 64821acc38bc346c0b7d1336d05ce0b2f29d6b81..adaf5732bf44aa0159a5e930667d14ab1ddd6eb3 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/19/2015, referencing rEFInd 0.9.2</p>
+11/8/2015, referencing rEFInd 0.10.0</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.2-1.x86_64.rpm</tt></pre>
+<pre class="listing"># <tt class="userinput">rpm -Uvh refind-0.10.0-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.2-1_amd64.deb</tt></pre>
+<pre class="listing"># <tt class="userinput">dpkg -i refind_0.10.0-1_amd64.deb</tt></pre>
 
 <p>Either command produces output similar to that described for <a href="#installsh">using the <tt>refind-install</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>
 
@@ -250,7 +250,7 @@ $ <tt class="userinput">sudo apt-get install refind</tt></pre></pre>
 <a name="installsh">
 <h2>Installing rEFInd Using <tt>refind-install</tt> under Linux or Mac OS X</h2>
 
-<p class="sidebar"><b>Warning:</b> If you're using a Macintosh, you should run <tt>refind-install</tt> from Mac OS X rather than from Linux. If run from Linux, rEFInd is unlikely to be fully installed. The reason is that Apple uses non-standard methods to enable a boot loader, and the Linux functions in <tt>refind-install</tt> assume standard EFI installation methods.</p>
+<p class="sidebar"><b>Note:</b> If you're using a Macintosh, it's best to install rEFInd from OS X, if possible. In the past, the Mac's firmware was quirky enough that the Linux tools didn't always work reliably. The matter seems to have improved with recent versions of Linux tools, but I can't guarantee success if you use Linux for this task. There is one significant issue with OS X 10.11, though (see the next Warning sidebar).</p>
 
 <p>If you're using Linux or Mac OS X, the easiest way to install rEFInd is to use the <tt>refind-install</tt> script. This script automatically copies rEFInd's files to your ESP or other target location and makes changes to your firmware's NVRAM settings so that rEFInd will start the next time you boot. If you've booted to OS X or in non-Secure-Boot EFI mode to Linux on a UEFI-based PC, <tt>refind-install</tt> will probably do the right thing, so you can get by with the quick instructions. If your setup is unusual, if your computer uses Secure Boot, or if you want to create a USB flash drive with rEFInd on it, you should read the <a href="#extra_installsh">extra instructions</a> for this utility.</p>
 
@@ -258,7 +258,7 @@ $ <tt class="userinput">sudo apt-get install refind</tt></pre></pre>
 <h3>Quick <tt>refind-install</tt> Instructions</h3>
 </quickstart>
 
-<p class="sidebar"><b>Warning:</b> I've received reports that the OS X 10.11 ("El Capitan") beta has made changes to the OS that break the rEFInd installation procedure. This problem has been publicly reported as a bug in <tt>bless</tt>&mdash;see, for instance, <a href="http://www.openradar.me/22397509">here</a> and <a href="http://www.openradar.me/22170141">here.</a> It seems to be related to a new feature called System Integrity Protection. If possible, I recommend using OS X 10.10 ("Yosemite") or earlier to install rEFInd until this issue is resolved. It's reportedly possible to disable this feature by booting to recovery mode (by holding down Alt while booting) and typing <tt class="userinput">csrutil disable</tt> in a Terminal. After installing rEFInd, you can re-enable this feature by repeating the process, but typing <tt class="userinput">csrutil enable</tt>.</p>
+<p class="sidebar"><b>Warning:</b> OS X 10.11 ("El Capitan") implements a new feature called System Integrity Protection (SIP; aka "rootless" or "CSR"). When enabled, SIP prevents the final step of rEFInd installation&mdash;registering the boot loader with the firmware. Thus, to install rEFInd, you must either disable SIP or perform the installation from something other than your regular OS X installation. The <a href="sip.html">rEFInd and System Integrity Protection</a> page of this document describes the options.</p>
 
 <p>By default, the <tt>refind-install</tt> script installs rEFInd to your disk's ESP. Under Mac OS X, you can instead install rEFInd to your current OS X boot partition by passing the script the <tt>--notesp</tt> option, or to a non-boot HFS+ partition by using the <tt>--ownhfs <tt class="variable">devicefile</tt></tt> option. Under either OS, you can install to something other than the currently-running OS by using the <tt>--root <tt class="variable">/mountpoint</tt></tt> option. (See <a href="#table1">Table 1</a> for details.)</p>
 
@@ -490,7 +490,7 @@ Filesystem     1K-blocks  Used Available Use% Mounted on
 /dev/sda1         191284 16604    174681   9% /boot/efi
 </pre>
 
-<p class="sidebar"><b>Warning:</b> If you're running Linux on a Mac, I recommend you install rEFInd under OS X. The Mac's boot process deviates a bit from EFI standards, so you'll probably have to use a tool called <tt>bless</tt> under Mac OS to do the job. Alternatively, there's a new Linux program, <tt>hfs-bless</tt>, part of the <a href="http://www.codon.org.uk/~mjg59/mactel-boot/"><tt>mactel-boot</tt></a> RPM package or as part of the <a href="https://launchpad.net/~detly/+archive/ubuntu/mactel-utils">mactel-utils PPA for Ubuntu</a>, that's supposed to work with <tt>efibootmgr</tt> to make a Mac HFS partition bootable. I've not yet tried it, though. There are also reports that the <tt>efibootmgr</tt> tool used under Linux can corrupt some Macs' firmware. Although I've seen some vague suggestions that this problem has been fixed under 3.<i>x</i> kernels, I haven't tested this claim.</p>
+<p class="sidebar"><b>Note:</b> If you're running Linux on a Mac, I recommend you install rEFInd under OS X. The Mac's boot process deviates a bit from EFI standards, and older versions of <tt>efibootmgr</tt> didn't always work properly on Macs. This problem seems to have gone away with more recent versions of <tt>efibootmgr</tt>, but using OS X may still be more reliable. On the other hand, Apple's new (as of OS X 10.11) System Integrity Protection (SIP) feature blocks the use of <tt>bless</tt> under OS X and so prevents rEFInd installation. The <a href="sip.html">rEFInd and System Integrity Protection</a> page of this document covers how to overcome SIP and install rEFInd. One of these methods is to do the job from Linux.</p>
 
 <p>This example shows that <tt>/dev/sda1</tt> is mounted at <tt>/boot/efi</tt>, which is a typical configuration. (The ESP can be on another disk or partition, but <tt>/dev/sda1</tt> is the most common place for an ESP.) If your output shows <tt>/boot</tt> or <tt>/</tt> under the <tt>Mounted on</tt> column, then your ESP isn't mounted. (An exception is if you're mounting the ESP at <tt>/boot</tt>. This is an unusual configuration. If you're using it, you can proceed, making suitable adjustments to subsequent commands.) If you get a <tt>df: `/boot/efi': No such file or directory</tt> error message, then the <tt>/boot/efi</tt> directory doesn't even exist. In such cases, you may need to jump through some extra hoops, as described on my <a href="http://www.rodsbooks.com/efi-bootloaders/installation.html">EFI Boot Loader Installation</a> page.</p>
 
@@ -526,7 +526,7 @@ Filesystem     1K-blocks  Used Available Use% Mounted on
 <h3>Installing rEFInd Manually Using Mac OS X</h3>
 </a>
 
-<p class="sidebar"><b>Warning:</b> I've received reports that the OS X 10.11 ("El Capitan") beta has made changes to the OS that break the rEFInd installation procedure. This problem has been publicly reported as a bug in <tt>bless</tt>&mdash;see, for instance, <a href="http://www.openradar.me/22397509">here</a> and <a href="http://www.openradar.me/22170141">here.</a> It seems to be related to a new feature called System Integrity Protection. If possible, I recommend using OS X 10.10 ("Yosemite") or earlier to install rEFInd until this issue is resolved. It's reportedly possible to disable this feature by booting to recovery mode (by holding down Alt while booting) and typing <tt class="userinput">csrutil disable</tt> in a Terminal. After installing rEFInd, you can re-enable this feature by repeating the process, but typing <tt class="userinput">csrutil enable</tt>.</p>
+<p class="sidebar"><b>Warning:</b> OS X 10.11 ("El Capitan") implements a new feature called System Integrity Protection (SIP; aka "rootless" or "CSR"). When enabled, SIP prevents the final step of rEFInd installation&mdash;registering the boot loader with the firmware. Thus, to install rEFInd, you must either disable SIP or perform the installation from something other than your regular OS X installation. The <a href="sip.html">rEFInd and System Integrity Protection</a> page of this document describes the options. If you're an advanced enough user to be considering a manual rEFInd installation procedure, doing the job from the Recovery HD environment may be your best option.</p>
 
 <p>Before installing rEFInd on a Mac, you must determine whether it uses a 32-bit or 64-bit EFI implementation. Most Intel-based Macs have 64-bit EFIs, so you should use the <tt>refind_x64.efi</tt> file with them; but very early Intel-based Macs have 32-bit EFIs (and sometimes 32-bit CPUs), which require the <tt>refind_ia32.efi</tt> file. You can determine whether your Mac needs the <i>x</i>86-64 or IA32 build by typing the following command in a Mac Terminal window:</p>
 
@@ -547,16 +547,19 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 <li>Open a Terminal window in which you'll type the following
     commands.</li>
 
-<li>If you want to install rEFInd on your ESP, you must first mount it. You
-    can do this by typing <b><tt>mkdir /Volumes/esp</tt></b> followed by
-    <b><tt>sudo mount -t msdos /dev/disk0s1 /Volumes/esp</tt></b>. Note
-    that you may need to change <tt>/dev/disk0s1</tt> to something else if
-    your ESP is at an unusual location. Type <tt class="userinput">diskutil
-    list</tt> or use a tool such as my <a
-    href="http://www.rodsbooks.com/gdisk/">GPT fdisk (<tt>gdisk</tt>)</a>
-    to examine your partition table to find your ESP if necessary.</li>
-
-<li>Type <b><tt>sudo mkdir -p /Volumes/esp/efi/refind</tt></b> to create a
+<li>If you want to install rEFInd on your ESP, you must first mount it. The
+    easy way to do this is to use the <tt>mountesp</tt> script that comes
+    with rEFInd. When you run it, the script should tell you where the ESP
+    was mounted. You can do the job manually by typing <b><tt>mkdir
+    /Volumes/ESP</tt></b> followed by <b><tt>sudo mount -t msdos
+    /dev/disk0s1 /Volumes/ESP</tt></b>. Note that you may need to change
+    <tt>/dev/disk0s1</tt> to something else if your ESP is at an unusual
+    location. Type <tt class="userinput">diskutil list</tt> or use a tool
+    such as my <a href="http://www.rodsbooks.com/gdisk/">GPT fdisk
+    (<tt>gdisk</tt>)</a> to examine your partition table to find your ESP
+    if necessary.</li>
+
+<li>Type <b><tt>sudo mkdir -p /Volumes/ESP/efi/refind</tt></b> to create a
     suitable directory for rEFInd. If you want to place rEFInd on the OS X
     root partition, you should adjust the pathname appropriately, as in
     <tt>/efi/refind</tt>. Alternatively, you can use the Finder to create
@@ -565,18 +568,18 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 <li>Copy the files in the <tt>refind</tt> subdirectory of the rEFInd binary
     package to the like-named directory you've just created. You can do
     this in the Finder or by typing <b><tt>sudo cp -r refind/*
-    /Volumes/esp/efi/refind/</tt></b> in your Terminal window after
+    /Volumes/ESP/efi/refind/</tt></b> in your Terminal window after
     changing into the rEFInd package's main directory.</li>
 
 <li>Remove the file for the version of rEFInd you're not using, as in
     <b><tt>sudo rm Volumes/esp/efi/refind/refind_ia32.efi</tt></b> on a Mac
     with a 64-bit EFI or <b><tt>sudo rm
-    /Volumes/esp/efi/refind/refind_x64.efi</tt></b> on a Mac with a 32-bit
+    /Volumes/ESP/efi/refind/refind_x64.efi</tt></b> on a Mac with a 32-bit
     EFI.</li>
 
 <li>Optionally, remove the drivers directory for the architecture you're
-    not using&mdash;<tt>/Volumes/esp/efi/refind/drivers_ia32</tt> or
-    <tt>/Volumes/esp/efi/refind/drivers_x64</tt>, as appropriate. You may
+    not using&mdash;<tt>/Volumes/ESP/efi/refind/drivers_ia32</tt> or
+    <tt>/Volumes/ESP/efi/refind/drivers_x64</tt>, as appropriate. You may
     also want to remove some or all of the drivers for the architecture you
     are using; if you don't need them, they'll slow down the start process.
     See the <a href="drivers.html">page on drivers</a> for more on this
@@ -584,8 +587,8 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
     HFS+ driver provided with rEFInd is useless on Macs.</li>
 
 <li>If this is your first installation, type <b><tt>sudo mv
-    /Volumes/esp/efi/refind/refind.conf-sample
-    /Volumes/esp/efi/refind/refind.conf</tt></b> (adjusting the path as
+    /Volumes/ESP/efi/refind/refind.conf-sample
+    /Volumes/ESP/efi/refind/refind.conf</tt></b> (adjusting the path as
     necessary) to rename the sample configuration file so that it will
     serve as a real configuration file. (Again, you can do this with the
     Finder, if you prefer.)</li>
@@ -593,8 +596,8 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 <li>"Bless" rEFInd by typing one of the following two commands:
     <ul>
     <li>If you're installing rEFInd on the ESP, type <tt
-       class="userinput">sudo bless --mount /Volumes/esp --setBoot --file
-       /Volumes/esp/efi/refind/refind_x64.efi --shortform</tt>, adjusting
+       class="userinput">sudo bless --mount /Volumes/ESP --setBoot --file
+       /Volumes/ESP/efi/refind/refind_x64.efi --shortform</tt>, adjusting
        the mount point and exact path to the file as appropriate for your
        installation.</li>
     <li>If you're installing rEFInd to an ordinary HFS+ volume, type <tt
@@ -603,15 +606,13 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
        necessary if you're placing rEFInd somewhere else or using the
        32-bit version.)</li>
     </ul>
-    As per the Warning earlier, <i>do not</i> use <tt>bless</tt>'s
-    <tt>--info</tt> option to try to confirm the change to the boot status
-    unless you're certain you do <i>not</i> have an Advanced Format hard
-    disk.</li>
+    This is the step that's likely to fail if your system is booted
+    with SIP active.</li>
 
 <li>If you don't want to reboot immediately after installing rEFInd, you
     may optionally unmount the ESP by typing <tt class="userinput">sudo
     umount /dev/disk0s1</tt> or <tt class="userinput">sudo umount
-    /Volumes/esp</tt>. This step isn't strictly required, but if you want
+    /Volumes/ESP</tt>. This step isn't strictly required, but if you want
     to keep the ESP out of your directory tree, it can be useful.</li>
 
 </ol>
@@ -1034,7 +1035,7 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 <h3>Using the <tt>--shortform</tt> Option</h3>
 </a>
 
-<p>Prior to version 0.8.5, these instructions and the <tt>refind-install</tt> script omitted the <tt>--shortform</tt> option from the <tt>bless</tt> command when installing rEFInd to the ESP. An rEFInd user, however, discovered that using the option eliminated the 30-second delay, so it is now the default with 0.8.5's <tt>refind-install</tt>, and is specified in the instructions. If you installed rEFInd 0.8.4 or earlier, you may want to re-install or re-<tt>bless</tt> rEFInd using this option.</p>
+<p>Prior to version 0.8.5, these instructions and the <tt>refind-install</tt> script omitted the <tt>--shortform</tt> option from the <tt>bless</tt> command when installing rEFInd to the ESP. A rEFInd user, however, discovered that using the option eliminated the 30-second delay, so it is now the default with 0.8.5's <tt>refind-install</tt>, and is specified in the instructions. If you installed rEFInd 0.8.4 or earlier, you may want to re-install or re-<tt>bless</tt> rEFInd using this option.</p>
 
 <p>There is one caveat, though: The <tt>man</tt> page for <tt>bless</tt> notes that <tt>--shortform</tt> notes that its use can come "at the expense of boot time performance." Thus, it's not clear to me that this option might not actually <i>create</i> problems on some computers. (It's eliminated the boot delay on my 2014 MacBook Air and has no detrimental effect on an old 32-bit Mac Mini that's never had a boot delay problem, though.) Thus, if you have problems with rEFInd 0.8.5 or later, you might try running <tt>bless</tt>, as described in <a href="#osx">Installing rEFInd Manually Using OS X's</a> step 8, but <i>omit</i> the <tt>--shortform</tt> option.</p>
 
@@ -1211,7 +1212,8 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 
 <li>If necessary, mount the ESP or rEFInd-specific HFS+ volume, as
     described in <a href="#osx">Installing rEFInd Manually Using Mac OS
-    X.</a></li>
+    X.</a> (The <tt>mountesp</tt> script that comes with rEFInd will handle
+    this task.)</li>
 
 <li>Verify that rEFInd is installed in the directory noted in step #1. If a
     <tt>refind.conf</tt> file is present, rEFInd is almost certainly
@@ -1228,7 +1230,7 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
     <tt>bootx64.efi</tt>, <tt>boot.efi</tt>, or conceivably something else.
     You may need to use <tt>sudo rm</tt> at the command line to accomplish
     this task, as in <tt class="userinput">sudo rm -r
-    /Volumes/esp/EFI/refind</tt>.</li>
+    /Volumes/ESP/EFI/refind</tt>.</li>
 
 </ol>
 
@@ -1255,8 +1257,6 @@ Timeout: 10 seconds
 BootOrder: 0007
 Boot0007* CD/DVD Drive</pre>
 
-<p class="sidebar"><b>Warning:</b> As noted earlier, <tt>efibootmgr</tt> has been linked to firmware corruption on some Macs, at least with pre-3.3.0 Linux kernels. Therefore, I don't recommend using <tt>efibootmgr</tt> on Macs.</p>
-
 <p>This example shows use of <tt>efibootmgr</tt>'s <tt>--verbose</tt> (<tt>-v</tt>) option to display boot programs so as to identify which one is rEFInd, followed by <tt>--delete-bootnum</tt> (<tt>-B</tt>) to delete a boot program and <tt>--bootnum</tt> (<tt>-b</tt>) to identify which one to delete. Of course, in this example there's not much else left, so you'd presumably want to install another boot program at this point! If you already have another one installed, you may want to check the <tt>BootOrder</tt> line to determine which one will take precedence when you reboot. If you don't like what it shows, you can adjust it with the <tt>--bootorder</tt> (<tt>-o</tt>) option; consult <tt>efibootmgr</tt>'s <tt>man</tt> page for details.</p>
 
 <p>If you're not using Linux, you may be able to find a utility that serves