From b1ba9f9e7edcf78bb9bfeb5451bff0ecf1752f90 Mon Sep 17 00:00:00 2001 From: srs5694 Date: Mon, 8 Dec 2014 20:54:37 -0500 Subject: [PATCH] Version 0.8.4 release --- NEWS.txt | 11 +- debian/changelog | 2 +- docs/refind/bootmode.html | 2 +- docs/refind/configfile.html | 2 +- docs/refind/drivers.html | 2 +- docs/refind/features.html | 8 +- docs/refind/getting.html | 20 +-- docs/refind/index.html | 2 +- docs/refind/installing.html | 250 ++++++++++++++++++++---------------- docs/refind/linux.html | 2 +- docs/refind/revisions.html | 4 +- docs/refind/secureboot.html | 2 +- docs/refind/themes.html | 2 +- docs/refind/todo.html | 18 ++- docs/refind/using.html | 2 +- install.sh | 8 +- mkdistrib | 2 +- refind.spec | 2 +- refind/main.c | 2 +- 19 files changed, 200 insertions(+), 143 deletions(-) diff --git a/NEWS.txt b/NEWS.txt index 0fb7031..abf11af 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,5 +1,5 @@ -0.8.4 (11/??/2014): -------------------- +0.8.4 (12/8/2014): +------------------ - Tweaked default for dont_scan_volumes: Removed "Recovery HD". This change better suits the needs of OS X 10.10 ("Yosemite") installations, but may @@ -21,6 +21,13 @@ provided with rEFInd) or os_linux.{png|icns}. (Previous versions provided a generic loader icon for GRUB.) +- Fixed bug that caused dont_scan_files to not work with special-case + boot loaders (for OS X and Windows) when specifying the complete path to + the loader (e.g., EFI/Microsoft/Boot/bootmgfw.efi). + +- Added support for the iPXE network boot tool (see BUILDING.txt for + building and basic use instructions). + 0.8.3 (7/6/2014): ----------------- diff --git a/debian/changelog b/debian/changelog index 96c84a7..6a023aa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,7 @@ refind (0.8.4-0ppa1) trusty; urgency=medium * Version bump - -- Rod Smith Sun, 07 Dec 2014 12:28:56 -0400 + -- Rod Smith Mon, 08 Dec 2014 12:28:56 -0400 refind (0.8.3-0ppa1) trusty; urgency=medium diff --git a/docs/refind/bootmode.html b/docs/refind/bootmode.html index dfcc0f2..4736bb9 100644 --- a/docs/refind/bootmode.html +++ b/docs/refind/bootmode.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 3/14/2012; last Web page update: -7/6/2014, referencing rEFInd 0.8.3

+12/8/2014, referencing rEFInd 0.8.4

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 a39174a..503a2d4 100644 --- a/docs/refind/configfile.html +++ b/docs/refind/configfile.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 3/14/2012; last Web page update: -7/28/2014, referencing rEFInd 0.8.3

+12/8/2014, referencing rEFInd 0.8.4

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 14b5a5c..5c8ca65 100644 --- a/docs/refind/drivers.html +++ b/docs/refind/drivers.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 4/19/2012; last Web page update: -7/28/2014, referencing rEFInd 0.8.3

+12/8/2014, referencing rEFInd 0.8.4

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 fc112d5..90029d2 100644 --- a/docs/refind/features.html +++ b/docs/refind/features.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

Originally written: 3/14/2012; last Web page update: -7/6/2014, referencing rEFInd 0.8.3

+12/8/2014, referencing rEFInd 0.8.4

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!

@@ -168,13 +168,15 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

  • User-configurable methods of detecting boot loaders:
      -
    • Auto-detection of EFI boot loaders, independently on internal hard disks, external hard disks, and optical discs.
    • +
    • Auto-detection of EFI boot loaders, independently on internal hard disks, external hard disks, optical discs, and network boot loaders.
    • Auto-detection of legacy BIOS boot loaders, independently on internal hard disks, external hard disks, and optical discs.
    • Manually via the configuration file
    You can select which of these methods to use to construct the rEFInd main boot menu. Although rEFIt supports auto-detection, it does not support manual configuration; and rEFIt's options to enable, disable, and prioritize individual boot loader detection methods are primitive compared to those in rEFInd.
  • +
  • Beginning with rEFInd 0.8.4, experimental network boot loader support via the iPXE EFI binaries. When activated, rEFInd should add a network-boot option to its menu when a suitable network boot server is available.
  • +
  • Support for launching legacy BIOS boot loaders on UEFI PCs with suitable CSM support (as of version 0.4.6, with significant improvements in version 0.8.0). Note that some UEFI PCs, @@ -234,6 +236,8 @@ such as those with Gigabyte's Hybrid EFI, lack a usable CSM.
  • The gptsync utility, included with rEFInd 0.6.9 and later, has safety checks to prevent creating a fresh hybrid MBR if the MBR side has been adjusted without adjusting the GPT side—a common source of problems. This update also prioritizes partition inclusion in the hybrid MBR, which can help on disks that have many partitions. OTOH, as of rEFInd 0.6.9, this version of gptsync is relatively untested.
  • +
  • The ability to set the VMX bit on certain Intel CPUs. This feature is necessary for certain virtualization tools, such as Hyper-V, and not all EFIs enable users to set it.
  • +

    On the flip side, at least for Mac users, rEFInd comes with less sophisticated Mac installation tools than does rEFIt, in favor of more OS-agnostic packaging.

    diff --git a/docs/refind/getting.html b/docs/refind/getting.html index 0c0b517..636c457 100644 --- a/docs/refind/getting.html +++ b/docs/refind/getting.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

    Originally written: 3/14/2012; last Web page update: -7/6/2014, referencing rEFInd 0.8.3

    +12/8/2014, referencing rEFInd 0.8.4

    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!

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

    -
  • Using OS X Whole-Disk Encryption
  • -
  • Alternative Naming Options
      @@ -210,33 +208,33 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      Installing rEFInd Using an RPM or Debian Package File

      -

      Beginning with version 0.6.2, I've included RPM and Debian package files for rEFInd; and starting with version 0.8.3, 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:

      +

      I provide RPM and Debian package files for rEFInd; and starting with version 0.8.4, 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.8.3-1.x86_64.rpm
      +
      # rpm -Uvh refind-0.8.4-1.x86_64.rpm

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

      -
      # dpkg -i refind_0.8.3-1_amd64.deb
      +
      # dpkg -i refind_0.8.4-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.

      +

      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.

      If you're using Ubuntu, you should be able to install the PPA as follows:

      $ sudo apt-add-repository ppa:rodsmith/refind
       $ sudo apt-get update
      -$ apt-get install refind
      +$ sudo apt-get install refind

      The PPA version will update automatically with your other software, which you might or might not want to have happen. It's also built with GNU-EFI rather than with TianoCore. This last detail should have no practical effects, but it might be important if you've got a buggy EFI or if there's some undiscovered rEFInd bug that interacts with the build environment.

      -

      Since version 0.6.3, the installation script makes an attempt to install rEFInd in a bootable way even if you run the script from a BIOS-mode boot, and therefore the RPM and Debian packages do the same. I cannot guarantee that this will work, though, and even if it does, some of the tricks that install.sh uses might not last for long. You might therefore want to use mvrefind.sh to move your rEFInd installation to another name after you boot Linux for the first time from rEFInd.

      +

      Since version 0.6.3, the installation script makes an attempt to install rEFInd in a bootable way even if you run the script from a BIOS-mode boot, and therefore the RPM and Debian packages do the same. I cannot guarantee that this will work, though, and even if it does, some of the tricks that install.sh uses might not persist for long. You might therefore want to use mvrefind.sh to move your rEFInd installation to another name after you boot Linux for the first time from rEFInd.

      Since version 0.6.2-2, my package files have installed the rEFInd binaries to /usr/share/refind-version, the documentation to /usr/share/doc/refind-version, and a few miscellaneous files elsewhere. (The PPA package omits the version number from the file paths.) Upon installation, the package runs the install.sh script to copy the files to the ESP. This enables you to re-install rEFInd after the fact by running install.sh, should some other tool or OS wipe the ESP or should the installation go awry. In such cases you can use install.sh or install manually.

      Installing rEFInd Using install.sh under Linux or Mac OS X

      - +

      If you're using Linux or Mac OS X, the easiest way to install rEFInd is to use the install.sh 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, install.sh 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 extra instructions for this utility.

      @@ -244,11 +242,11 @@ $ apt-get install refind

      Quick install.sh Instructions

      -

      Under Linux, the install.sh script installs rEFInd to your disk's ESP. Under Mac OS X, the script installs rEFInd to your current OS X boot partition by default; but you can install to your ESP instead by passing the script the --esp option, or to a non-boot HFS+ partition by using the --ownhfs devicefile option. Under either OS, you can install to something other than the currently-running OS by using the --root /mountpoint option. (See Table 1 for details.)

      +

      By default, the install.sh 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 --notesp option, or to a non-boot HFS+ partition by using the --ownhfs devicefile option. Under either OS, you can install to something other than the currently-running OS by using the --root /mountpoint option. (See Table 1 for details.)

      -

      Under Linux, install.sh will be most reliable if your ESP is already mounted at /boot or /boot/efi, as described in more detail in the Installing rEFInd Manually Using Linux section. (If you installed Linux in EFI mode, chances are your ESP is properly mounted.) If your ESP is not so mounted, install.sh will attempt to locate and mount an ESP, but this action is not guaranteed to work correctly. If you run install.sh from a BIOS/legacy-mode boot, particularly on a computer that also runs Windows, you should be aware that the tricks the script uses to install itself from BIOS mode are rather delicate. You can convert to a more conventional configuration using the mvrefind.sh script.

      +

      Under Linux, install.sh will be most reliable if your ESP is already mounted at /boot or /boot/efi, as described in more detail in the Installing rEFInd Manually Using Linux section. (If you installed Linux in EFI mode, chances are your ESP is properly mounted.) If your ESP is not so mounted, install.sh will attempt to locate and mount an ESP, but this action is not guaranteed to work correctly. If you run install.sh from a BIOS/legacy-mode boot, particularly on a computer that also runs Windows, you should be aware that the tricks the script uses to install itself from BIOS mode are rather delicate. You can convert to a more conventional configuration using the mvrefind.sh script after you've booted in EFI mode.

      -

      Under OS X, install.sh attempts to install rEFInd to the OS X root partition by default. You can pass the script the --esp or --ownhfs device-file option, as noted in Table 1, to modify the installation location. This is helpful, and even necessary, in some cases, such as when your computer uses whole-disk encryption or if you use suspend-to-disk features.

      +

      Prior to version 0.8.4, install.sh installed rEFInd to the OS X root partition by default. I changed this because the default configuration for OS X 10.10 ("Yosemite") makes this placement unusable. Instead, install.sh now installs to the ESP under OS X, just as it does under Linux; however, the default installation location under OS X is EFI/BOOT/ rather than EFI/refind/. This difference accommodates a quirk of Apple's EFI, which sometimes imposes a 30-second delay when using anything but the EFI/BOOT location. If you're upgrading a working install of rEFInd to the OS X root partition, it's best to pass the --notesp option to install.sh. This option is described in more detail shortly.

      A sample run under Linux looks something like this:

      @@ -272,7 +270,9 @@ $ ./install.sh Not running as root; attempting to elevate privileges via sudo.... Password: Installing rEFInd on OS X.... -Installing rEFInd to the partition mounted at '/' +Installing rEFInd to the partition mounted at /Volumes/ESP +Found suspected Linux partition(s); installing ext4fs driver. +Installing driver for ext4 (ext4_ia32.efi) Copied rEFInd binary files Copying sample configuration file as refind.conf; edit this file to configure @@ -284,10 +284,14 @@ bless status with 'bless --info', since this is known to cause disk corruption on some systems!! -Installation has completed successfully. +Installation has completed successfully. + +Unmounting install dir

      In either case, the details of the output differ depending on your existing configuration and how you ran the program. Unless you see an obvious warning or error, you shouldn't be concerned about minor deviations from these examples. If you run into such a situation, or if you want to install in an unusual way, read on....

      +

      Note that the change to an ESP location for rEFInd with version 0.8.4 means that, if you upgrade rEFInd from an earlier version, you may notice a rEFInd boot option in the rEFInd menu. This option will boot the old version of rEFInd (or the new one, if something went wrong and the old version continues to boot). You can rid yourself of the unwanted boot menu by deleting the old files or by using dont_scan_dirs or dont_scan_files in refind.conf. Before you do this, you should use rEFInd to identify the unwanted files—the filename and volume identifier appear under the icons when you highlight the option. You can then locate and delete them from within OS X. Before you delete the old files, though, you may want to copy over any changes you've made to the rEFInd configuration, icons, and other support files.

      +

      Extra install.sh Instructions

      @@ -308,13 +312,19 @@ Installation has completed successfully. the Terminal window. You'll need to press the Return or Enter key to run the script. -
    • If you're using OS X 10.7's Whole Disk Encryption (WDE) feature, you - must install rEFInd to the ESP, so the --esp or - --ownhfs device-file option to - install.sh is required. I'm still a little bit foggy about - what's required to boot the system once this is done; see this - forum thread for a discussion of the topic.
    • +
    • If you're using OS X 10.7's Whole Disk Encryption (WDE) feature, or the + loogical volumes feature in OS X 10.10, you must install rEFInd + to the ESP or to a separate HFS+ partition. The default in rEFInd 0.8.4 + and later is to install to the ESP. If you prefer to use a separate + HFS+ volume, the --ownhfs device-file option to install.sh is + required.
    • + +
    • If you're not using WDE or logical volumes, you can install + rEFInd to the OS X root (/) partition by using the + --notesp option to install.sh. Using this option is + recommended when upgrading from a working rEFInd installation in this + location.
    • If you're replacing rEFIt with rEFInd on a Mac, there's a chance that install.sh will warn you about the presence of a program @@ -350,6 +360,20 @@ Installation has completed successfully. partition and if you mount that partition at /boot in your emergency system, and the ESP at /boot/efi.
    • +
    • On OS X, install.sh checks your partition tables for signs of + a Linux installation. If such a sign is found, the script installs the + EFI filesystem driver for the Linux ext4 filesystem. This will enable + rEFInd to read your Linux kernel if it's on an ext2, ext3, or + ext4 filesystem. Note that some configurations will require a + /boot/refind_linux.conf file, which can be reliably generated + only under Linux. (The mkrlconf.sh script that comes with + rEFInd will do this job once you've booted Linux.) In the meantime, you + can launch GRUB from rEFInd or press F2 or Insert twice after + highlighting the Linux option in rEFInd. This will enable you to enter + a root=/dev/whatever specification, + where /dev/whatever is the device + identifier of your Linux root (/) filesystem. +
    • If you run install.sh on Linux and if /boot/refind_linux.conf doesn't already exist, install.sh creates this file and populates it with a few @@ -366,12 +390,12 @@ Installation has completed successfully.

      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 [--esp | --usedefault device-file | --root mount-point | \
      +install.sh [--notesp | --usedefault device-file | --root mount-point | \
                   --ownhfs device-file ] \
                  [--nodrivers | --alldrivers] [--shim shim-filename] [--localkeys] [--yes]
       
      -

      The details of the options are summarized in Table 1. Broadly speaking, they come in four classes: installation location options (--esp, --usedefault, and --root), driver options (--nodrivers and --alldrivers), Secure Boot options (--shim and --localkeys), and a user input option (--yes). Using some of these options in unusual conditions can generate warnings and prompts to confirm your actions. In particular, using --shim or --localkeys when you're not booted in Secure Boot mode, or failing to use --shim when you are booted in Secure Boot mode, will generate a query and a request to confirm your installation. Consult the Managing Secure Boot page for more on this topic.

      +

      The details of the options are summarized in Table 1. Broadly speaking, they come in four classes: installation location options (--notesp, --usedefault, and --root), driver options (--nodrivers and --alldrivers), Secure Boot options (--shim and --localkeys), and a user input option (--yes). Using some of these options in unusual conditions can generate warnings and prompts to confirm your actions. In particular, using --shim or --localkeys when you're not booted in Secure Boot mode, or failing to use --shim when you are booted in Secure Boot mode, will generate a query and a request to confirm your installation. Consult the Managing Secure Boot page for more on this topic.

      @@ -379,12 +403,12 @@ install.sh [--esp | --usedefault device-file | --root - - + + - + @@ -392,15 +416,15 @@ install.sh [--esp | --usedefault device-file | --root - + - + - + @@ -416,7 +440,7 @@ install.sh [--esp | --usedefault device-file | --root
      Table 1: Options to install.sh
      Explanation
      --espThis option tells install.sh to install rEFInd to the ESP of your computer. This option is only useful on OS X; on Linux, installing to the ESP is a practical necessity, so --esp is implicit on Linux. Be aware that some users have reported sluggish boots when installing rEFInd to the ESP on Macs. Installing rEFInd anywhere but the ESP makes little sense on UEFI-based PCs, except for the partial exception of removable boot media, which you can prepare with --usedefault.--notespThis option, which is valid only under OS X, tells install.sh to install rEFInd to the OS X root partition rather than to the ESP. This behavior was the default in rEFInd 0.8.3 and earlier, so you may want to use it when upgrading installations of that version, unless you used --esp (which is now the default behavior, although the --esp option no longer exists) or --ownhfs. You may also want to use --notesp on new installations if you're sure you're not using whole-disk encryption or logical volumes.
      --usedefault device-fileYou can install rEFInd to a disk using the default/fallback filename of EFI/BOOT/bootx64.efi (and EFI/BOOT/bootia32.efi, if the 32-bit build is available) using this option. The device-file should be an unmounted ESP, or at least a FAT partition, as in --usedefault /dev/sdc1. Your computer's NVRAM entries will not be modified when installing in this way. The intent is that you can create a bootable USB flash drive or install rEFInd on a computer that tends to "forget" its NVRAM settings with this option. This option is mutually exclusive with --esp and --root (except for implicit use of --esp on Linux).You can install rEFInd to a disk using the default/fallback filename of EFI/BOOT/bootx64.efi (and EFI/BOOT/bootia32.efi, if the 32-bit build is available) using this option. The device-file should be an unmounted ESP, or at least a FAT partition, as in --usedefault /dev/sdc1. Your computer's NVRAM entries will not be modified when installing in this way. The intent is that you can create a bootable USB flash drive or install rEFInd on a computer that tends to "forget" its NVRAM settings with this option. This option is mutually exclusive with --notesp and --root.
      --ownhfs device-file
      --root /mount-pointThis option is intended to help install rEFInd from a "live CD" or other emergency system. To use it, you should mount your regular installation at /mount-point, including your /boot directory (if it's separate) at /mount-point/boot and (on Linux) your ESP at that location or at /mount-point/boot/efi. The install.sh script then installs rEFInd to the appropriate location—on Linux, /mount-point/boot/EFI/refind or /mount-point/boot/efi/EFI/refind, depending on where you've mounted your ESP; or on OS X, to /mount-point/EFI/refind. The script also adds an entry to your NVRAM for rEFInd at this location. You cannot use this option with either --esp or --usedefault, except for implicit use of --esp on Linux. Note that this option is not needed when doing a dual-boot Linux/OS X installation; just install normally in OS X.This option is intended to help install rEFInd from a "live CD" or other emergency system. To use it, you should mount your regular installation at /mount-point, including your /boot directory (if it's separate) at /mount-point/boot and (on Linux) your ESP at that location or at /mount-point/boot/efi. The install.sh script then installs rEFInd to the appropriate location—on Linux, /mount-point/boot/EFI/refind or /mount-point/boot/efi/EFI/refind, depending on where you've mounted your ESP. Under OS X, this option is only useful in conjunction with --notesp, in which case rEFInd will install to /mount-point/EFI/refind. The script also adds an entry to your NVRAM for rEFInd at this location. You cannot use this option with --usedefault. Note that this option is not needed when doing a dual-boot Linux/OS X installation; just install normally in OS X.
      --nodriversOrdinarily install.sh attempts to install the driver required to read /boot on Linux. This attempt works only if you're using ext2fs, ext3fs, ext4fs, or ReiserFS on the relevant partition. If you want to forego this driver installation, pass the --nodrivers option. This option is the default on OS X or when you use --usedefault.Ordinarily install.sh attempts to install the driver required to read /boot on Linux. This attempt works only if you're using ext2fs, ext3fs, ext4fs, or ReiserFS on the relevant partition. If you want to forego this driver installation, pass the --nodrivers option. This option is the implicit when you use --usedefault.
      --alldriversWhen you specify this option, install.sh copies all 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.When you specify this option, install.sh copies all 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. Note that some computers hang or fail to work with any drivers if you use this option, so use it with caution.
      --shim shim-filename or --preloader preloader-filename
      -

      In any event, you should peruse the script's output to ensure that everything looks OK. install.sh displays error messages when it encounters errors, such as if the ESP is mounted read-only or if you run out of disk space. You may need to correct such problems manually and re-run the script. In some cases you may need to fall back on manual installation, which gives you better control over details such as which partition to use for installation.

      +

      After you run install.sh, you should peruse the script's output to ensure that everything looks OK. install.sh displays error messages when it encounters errors, such as if the ESP is mounted read-only or if you run out of disk space. You may need to correct such problems manually and re-run the script. In some cases you may need to fall back on manual installation, which gives you better control over details such as which partition to use for installation.

      Installing rEFInd Manually

      @@ -450,7 +474,7 @@ Filesystem 1K-blocks Used Available Use% Mounted on
    • Type rm refind_ia32.efi to remove the IA32 binary if you're using an x86-64 (64-bit) system; or type rm refind_x64.efi to remove the x86-64 binary if you're using an x86 (32-bit) system. (Note that you must keep the version that's the correct bit width for your EFI; if you've installed a 32-bit Linux on a 64-bit PC with a 64-bit EFI, you'd keep refind_x64.efi.
    • -
    • Optionally, type rm -r drivers_ia32 to remove the x86 drivers from an x86-64 system, or rm -r drivers_x64 to remove the x86-64 drivers from a 32-bit x86 system. 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, and worse, if you're using Secure Boot, rEFInd can load just one shim/MOK-signed driver. See the page on drivers for more on this topic.
    • +
    • Optionally, type rm -r drivers_ia32 to remove the x86 drivers from an x86-64 system, or rm -r drivers_x64 to remove the x86-64 drivers from a 32-bit x86 system. 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, and worse, loading unnecessary drivers can cause some systems to hang or interfere with the drivers you do need. See the page on drivers for more on this topic.
    • Rename the configuration file by typing mv refind.conf-sample refind.conf. Consult the Editing the rEFInd Configuration File page for information on how to adjust your options.
    • @@ -480,9 +504,11 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi

      The result should include either EFI32 or EFI64, indicating that you should use the refind_ia32.efi or refind_x64.efi binary, respectively.

      +

      You should also be aware of your OS X version and installation options. If you used whole-disk encryption (WDE) or a logical volume for installation, you cannot install to the OS X root partition; you must install to the ESP or to a separate HFS+ partition. WDE became an option with OS X 10.7 and logical volumes are the default in OS X 10.10. If in doubt, proceed with an installation to the ESP or to a separate HFS+ partition.

      + -

      The procedure for installing rEFInd on a Mac is similar to that for installing it under Linux, except that you can (and probably should) install it to OS X's system partition or some other HFS+ partition rather than to the ESP, and you must use the bless utility rather than efibootmgr. To be precise, you should follow these steps:

      +

      The procedure for installing rEFInd on a Mac is similar to that for installing it under Linux, except that you must use the bless utility rather than efibootmgr to register the program with the firmware. Also, you'll probably have to mount your ESP manually, since that's not done by default under OS X. To be precise, you should follow these steps:

        @@ -492,59 +518,58 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi
      1. If you want to install rEFInd on your ESP, you must first mount it. You can do this by typing mkdir /Volumes/esp followed by sudo mount -t msdos /dev/disk0s1 /Volumes/esp. Note - that this step is usually optional, and it makes the procedure a bit - more complex, so you might want to forego it. On the other hand, - installing to the ESP is required if you're using the whole-disk - encryption feature of OS X 10.7. Note that you may need to change - /dev/disk0s1 to something else if your ESP is at an unusual - location. Use a tool such as my /dev/disk0s1 to something else if + your ESP is at an unusual location. Type diskutil + list or use a tool such as my GPT fdisk (gdisk) to examine your partition table to find your ESP if necessary.
      2. -
      3. Type sudo mkdir -p /efi/refind to create a suitable - directory for rEFInd. If you want to place rEFInd on the ESP or some - other partition, you should adjust the pathname appropriately, as in - /Volumes/esp/efi/refind. Alternatively, you can use the Finder - to create the directory.
      4. +
      5. Type sudo mkdir -p /Volumes/esp/efi/refind 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 + /efi/refind. Alternatively, you can use the Finder to create + the directory.
      6. Copy the files in the refind 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 sudo cp -r refind/* - /efi/refind/ in your Terminal window after changing into the - rEFInd package's main directory.
      7. + /Volumes/esp/efi/refind/ in your Terminal window after + changing into the rEFInd package's main directory.
      8. Remove the file for the version of rEFInd you're not using, as in - sudo rm /efi/refind/refind_ia32.efi on a Mac with a - 64-bit EFI or sudo rm /efi/refind/refind_x64.efi on a - Mac with a 32-bit EFI.
      9. + sudo rm Volumes/esp/efi/refind/refind_ia32.efi on a Mac + with a 64-bit EFI or sudo rm + /Volumes/esp/efi/refind/refind_x64.efi on a Mac with a 32-bit + EFI.
      10. Optionally, remove the drivers directory for the architecture you're - not using—/efi/refind/drivers_ia32 or - /efi/refind/drivers_x64, 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 page on drivers for more on this topic. Note - that Apple's firmware includes its own HFS+ driver, so the HFS+ driver - provided with rEFInd is useless on Macs.
      11. + not using—/Volumes/esp/efi/refind/drivers_ia32 or + /Volumes/esp/efi/refind/drivers_x64, 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 page on drivers for more on this + topic. Note that Apple's firmware includes its own HFS+ driver, so the + HFS+ driver provided with rEFInd is useless on Macs.
      12. If this is your first installation, type sudo mv - /efi/refind/refind.conf-sample /efi/refind/refind.conf - (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.)
      13. + /Volumes/esp/efi/refind/refind.conf-sample + /Volumes/esp/efi/refind/refind.conf (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.)
      14. "Bless" rEFInd by typing one of the following two commands:
          -
        • If you're installing rEFInd to an ordinary HFS+ volume, type sudo bless --setBoot --folder /efi/refind --file - /efi/refind/refind_x64.efi. (Adjust the path and filename as - necessary if you're placing rEFInd somewhere else or using the - 32-bit version.)
        • If you're installing rEFInd on the ESP, type sudo bless --mount /Volumes/esp --setBoot --file /Volumes/esp/efi/refind/refind_x64.efi, adjusting the mount point and exact path to the file as appropriate for your installation.
        • +
        • If you're installing rEFInd to an ordinary HFS+ volume, type sudo bless --setBoot --folder /efi/refind --file + /efi/refind/refind_x64.efi. (Adjust the path and filename as + necessary if you're placing rEFInd somewhere else or using the + 32-bit version.)
        As per the Warning earlier, do not use bless's --info option to try to confirm the change to the boot status @@ -561,7 +586,7 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi

        When you reboot, your Mac should bring up the rEFInd menu, and should continue to do so thereafter. If you make changes that break this association, you can re-run the bless command (if necessary, restoring the rEFInd files first). This might be necessary after installing system updates from Apple or if you upgrade rEFInd to a newer version.

        -

        If you're replacing rEFIt, you may discover that rEFInd works on the first boot, but the system reverts back to rEFIt or a direct boot to OS X on the second boot. To fix this problem, you can remove the rEFItBlesser program, which is located at /Library/StartupItems/rEFItBlesser. This program attempts to keep rEFIt set as the default boot loader, but it also has the purpose of protecting the computer from launching the wrong OS after waking from sleep. If you want that protection, my suggestion is to install rEFIt and rEFItBlesser and then replace the refit.efi file with refind_x64.efi or refind_ia32.efi (renaming it to refit.efi. Used in this way, rEFInd will still look for its own configuration file, refind.conf, so you'll need to move it but not rename it. If you don't move the icons from the rEFInd package, your icons will continue to look like rEFIt icons, and you'll be missing the new icons for specific Linux distributions that rEFInd provides. One final caveat: It's conceivable that rEFItBlesser is what's causing filesystem corruption for some users, so if you've been having this problem with rEFIt, it might be worth disabling this program and not using it with rEFInd.

        +

        If you're replacing rEFIt, you may discover that rEFInd works on the first boot, but the system reverts back to rEFIt or a direct boot to OS X on the second boot. To fix this problem, you can remove the rEFItBlesser program, which is located at /Library/StartupItems/rEFItBlesser. This program attempts to keep rEFIt set as the default boot loader, but it also has the purpose of protecting the computer from launching the wrong OS after waking from sleep. If you want that protection, my suggestion is to install rEFIt and rEFItBlesser and then replace the refit.efi file with refind_x64.efi or refind_ia32.efi (renaming it to refit.efi). Used in this way, rEFInd will still look for its own configuration file, refind.conf, so you'll need to move it but not rename it. If you don't move the icons from the rEFInd package, your icons will continue to look like rEFIt icons, and you'll be missing the new icons for specific Linux distributions that rEFInd provides. One final caveat: It's conceivable that rEFItBlesser is what's causing filesystem corruption for some users, so if you've been having this problem with rEFIt, it might be worth disabling this program and not using it with rEFInd.

        If you want to remove rEFInd from your system, you can delete its files. The Mac will revert to booting using whatever standard boot loader it can find. Alternatively, you can use bless to bless another EFI boot loader. The GUI Startup Disk utility in System Preferences provides a simplified interface that enables you to select which OS X installation to boot, but it doesn't look for non-Apple boot loaders, so you can't use it to enable rEFInd.

        @@ -571,7 +596,7 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi -

        To install rEFInd under Windows, you must first find a way to access the ESP, which Windows normally hides from view. One way to accomplish this goal, and to proceed forward once the ESP is accessible, is as follows:

        +

        Attempt this method of installation only on a UEFI-based PC; this method will not work on Windows that's installed on a Mac in BIOS/CSM/legacy mode. To install rEFInd under Windows, you must first find a way to access the ESP, which Windows normally hides from view. One way to accomplish this goal, and to proceed forward once the ESP is accessible, is as follows:

          @@ -587,7 +612,7 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi
        1. Type cd EFI\refind to change into the refind subdirectory
        2. -
        3. You may want to selectively delete some of the drivers in the drivers_x64 or drivers_ia32 directory, depending on your architecture and needs. Unnecessary drivers will slow the rEFInd start process. See the page on drivers for more on this topic.
        4. +
        5. You may want to selectively delete some of the drivers in the drivers_x64 or drivers_ia32 directory, depending on your architecture and needs. Unnecessary drivers will slow the rEFInd start process, and can even cause the drivers you need to not work or cause a system crash. See the page on drivers for more on this topic.
        6. Type rename refind.conf-sample refind.conf to rename rEFInd's configuration file.
        7. @@ -597,11 +622,11 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi
        -

        At this point, when you reboot, rEFInd should appear as your new default boot program. One caveat: My only EFI Windows installation uses UEFI DUET, which "forgets" its boot options upon reboot. Thus, I'm unable to test the last two steps (which were provided by a helpful user) myself. If it doesn't work for you, you have several other options, such as:

        +

        At this point, when you reboot, rEFInd should appear as your new default boot program. If it doesn't work for you, you have several other options, such as:

          -
        • You can rename files on the ESP. as described in the next section, Alternative Naming Options.
        • +
        • You can rename files on the ESP. as described later, in Alternative Naming Options.
        • You can boot from an optical disc into an emergency OS to do the job. Ubuntu, for instance, provides an EFI-bootable installer with a "try before installation" mode. You'll need to type sudo apt-get install efibootmgr to install efibootmgr, but you can then use that program as described earlier. (If you're using Ubuntu, you'll need to precede the command with sudo. If you use an Ubuntu image, you can install rEFInd via its PPA, which is an easy way to do the job. (In fact, the rEFInd PPA depends on the efibootmgr package, so you shouldn't need to manually install it.) The PPA approach may even be easier than installing from Windows using its tools, at least if you're familiar with Linux and have an Ubuntu desktop image handy.
        • @@ -651,7 +676,7 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi need to adjust them if it's not.) If rEFInd's source files are on another device, you must identify it, too. - +
        • If necessary, create a directory for rEFInd by typing mkdir fs0:\EFI\refind. (If the fs0:\EFI @@ -699,7 +724,7 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi (3 in this example), filesystem (fs0:), and filename (\EFI\refind\refind_x64.efi) as necessary for your system. If you're used to Linux, be sure to use backslashes (\), not - Linux-style forward slashes (/) as directory separators. Note + Linux-style forward slashes (/), as directory separators. Note that some shells may ignore the number you entered and use another one, so watch for this possibility.
        • @@ -714,20 +739,6 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi

          With any luck, rEFInd will start up at this point. If not, you can check your settings using a shell or an emergency system for your OS of choice. In an EFI shell, you might type bcfg boot dump -b to view your boot loader entries and verify that rEFInd appears at the top of the list. Be sure to check the pathname for typos. If you continue to have problems, you might look into giving rEFInd a fallback filename that your firmware will recognize.

          - -

          Using OS X Whole-Disk Encryption

          -
          - -

          If you're using OS X's Whole-Disk Encryption (WDE) feature, you must do two extra things:

          - -
            - -
          • You must install rEFInd to the ESP. Unfortunately, as described earlier, this can result in a delay (usually of 30 seconds) as the firmware launches rEFInd. See the upcoming section on fixing sluggish Mac boots if you run into this problem.
          • - -
          • You must uncomment the dont_scan_volumes line in refind.conf and ensure that "Recovery HD" is not among its options. (You can use a blank line or provide a dummy value if you want to scan all your volumes.) Alternatively, you can create a manual boot stanza to boot OS X.
          • - -
          -

          Alternative Naming Options

          @@ -796,11 +807,11 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi

          Renaming Files Manually

          -

          Some EFI implementations do a poor job of honoring the boot options set via Linux's efibootmgr or other tools. You may also lack access to such utilities, such as if you must install rEFInd in Windows. In such cases, you may need to change the boot loader's name so that the EFI will see it as the default boot loader. rEFInd should then boot when your NVRAM lacks information on specific boot loaders to use. To do this, follow these steps:

          +

          You can move and rename rEFInd manually from any OS by following these steps:

            -
          1. Access your ESP and install rEFInd to it, as described in earlier sections.
          2. +
          3. Access your ESP, as described in earlier sections.
          4. Look for an existing directory called EFI/BOOT or EFI/Microsoft/Boot. If neither of these directories exist, skip the next step. (Note that FAT is case-insensitive, so the name may vary in case.)
          5. @@ -844,9 +855,9 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi icons directory (icons-backup, which holds the original icons, whereas icons holds the icons from the new package). Normally this just wastes some disk space; but if you've customized your icons, - you'll need to copy your altered icons back. Since version 0.6.2, - install.sh has searched for rEFInd in several locations on the - ESP, and will upgrade whatever it finds. + you'll need to copy your altered icons back. Under Linux, versions + 0.6.2 and later of install.sh search for rEFInd in several + locations on the ESP, and will upgrade whatever is found.
          6. Under an RPM- or Debian-based Linux distribution, you can use your package system to install a newer version of the RPM or Debian package @@ -855,6 +866,15 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi options, you'll waste a little disk space on duplicated icons, but the process should otherwise work quite well.
          7. +
          8. If you installed using my Ubuntu PPA or a package provided by an OS + distribution (such as the packages that ship with Arch and ALT Linux), + performing a system update will probably update rEFInd, too. Depending + on how the package was created, though, this update might or might not + install the update to the ESP; you might need to manually re-run the + installation script. Consult your distribution's documentation for + details. My Ubuntu PPA will automatically run install.sh after + the package is installed.
          9. +

        In all cases, if the new version includes new or altered configuration file options, you may need to manually update your configuration file. Alternatively, if you've used the default configuration file, you can replace your working refind.conf with refind.conf-sample from the rEFInd zip file. (When using install.sh, this file will be copied to rEFInd's installation directory under its original name, so you can rename it within that directory to replace the old file.)

        @@ -941,6 +961,20 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi detail on the Managing Secure Boot page.
      15. +
      16. iPXE—This tool provides the + ability to boot a computer from a network server. Consult the + BUILDING.txt file in the rEFInd source code package for + information on building and installing these tools. You must also + activate rEFInd's support by adding the netboot option to the + scanfor and/or showtools lines in + refind.conf. Network-boot/iPXE support is currently + experimental; I recommend that only developers or those who are + willing to use "bleeding-edge" software try it. Once activated, rEFInd + will present a new menu item for booting from the network server. + rEFInd itself will normally be installed locally. (You can deliver + rEFInd as a network-boot image, but that image will be able to boot + only OSes on the local disk.)
      17. +

    I've seen links to other versions of these tools from time to time on the Web, so if you try one of these programs and it crashes or behaves strangely, try performing a Web search; you may turn up something that works better for you than the one to which I've linked.

    @@ -949,31 +983,31 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi

    Fixing Macintosh Boot Problems

    -

    I've received a few reports of a sluggish boot process (a delay of about 30 seconds before starting rEFInd) on some Macs after installing rEFInd, as well as some other Mac-specific peculiarities. I've been unable to replicate this problem myself, and its true cause remains mysterious to me. I have found three possible solutions, though: moving rEFInd to an HFS+ volume, using the fallback filename, and clearing NVRAM entries.

    +

    I've received a few reports of a sluggish boot process (a delay of about 30 seconds before starting rEFInd) on some Macs after installing rEFInd, as well as some other Mac-specific peculiarities. I've been unable to replicate thess problems myself, and their true causes remains mysterious to me. I have found several possible solutions, though: using the fallback filename, moving rEFInd to an HFS+ volume, clearing NVRAM entries, and fixing wake problems.

    + + +

    Using the Fallback Filename

    +
    + +

    I've received a few reports that installing rEFInd to the ESP using the fallback filename (EFI/BOOT/bootx64.efi on most systems, or EFI/BOOT/bootia32.efi on very old Macs) can work around a sluggish boot problem. In fact, since version 0.8.4, the install.sh script copies the rEFInd binary to this name when run under OS X. If you installed manually to another name, though, renaming (and re-blessing) the installation is worth trying.

    Moving rEFInd to an HFS+ Volume

    -

    Most of the reports of sluggish Macintosh boots I've seen note that the user installed rEFInd to the ESP rather than to the OS X root partition. Some users have reported that re-installing rEFInd to the OS X root partition clears up the problem. This is obviously a straightforward solution to the problem, if it works. Note that rEFInd can launch boot loaders that are stored on any partition that the EFI can read no matter where it's installed; therefore, you'll still be able to launch boot loaders stored on the ESP (or elsewhere) if you install it in this way.

    +

    Most of the reports of sluggish Macintosh boots I've seen note that the user installed rEFInd to the ESP rather than to the OS X root partition. Some users have reported that re-installing rEFInd to the OS X root partition clears up the problem. This is obviously a straightforward solution to the problem, if it works. (This location is not an option when using WDE or OS X logical volumes.) Note that rEFInd can launch boot loaders that are stored on any partition that the EFI can read no matter where it's installed; therefore, you'll still be able to launch boot loaders stored on the ESP (or elsewhere) if you install it in this way.

    A variant of this solution is to create a small (~100MiB) HFS+ volume to be used exclusively by rEFInd. You can then install rEFInd to that volume with the --ownhfs option to install.sh, as in ./install.sh --ownhfs /dev/disk0s6 if the volume is /dev/disk0s6. This approach has the advantage that it can be managed via OS X's own Startup Disk tool in System Preferences.

    -

    The biggest drawback to storing rEFInd on an HFS+ volume 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 force option to mount; however, this procedure is noted as being risky in the Linux HFS+ documentation, so I don't recommend doing this on a regular basis on the OS X boot volume. This isn't as risky if you use a dedicated HFS+ rEFInd partition, though. You could even mount it as the Linux /boot partition, in which case it would also hold the Linux kernel and related files. If you use disk encryption, you can't store rEFInd on the OS X root (/) partition, but you could still use an (unencrypted) separate HFS+ partition.

    +

    The biggest drawback to storing rEFInd on an HFS+ volume 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 force option to mount; however, this procedure is noted as being risky in the Linux HFS+ documentation, so I don't recommend doing this on a regular basis on the OS X boot volume. This isn't as risky if you use a dedicated HFS+ rEFInd partition, though. You could even mount it as the Linux /boot partition, in which case it would also hold the Linux kernel and related files.

    A variant of this solution is suggested in this blog post, 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.)

    - -

    Using the Fallback Filename

    -
    - -

    I've received a few reports that installing rEFInd to the ESP using the fallback filename (EFI/BOOT/bootx64.efi on most systems, or EFI/BOOT/bootia32.efi on very old Macs) can work around the problem.

    -

    Clearing the NVRAM Entries

    -

    The first is a Web forum post that describes a possible fix. Be aware, though, that this procedure involves using the efibootmgr utility on Macs, which has been known to damage the firmware on some Macs. Other reports indicate that this problem has been fixed with 3.3.0 and later kernels. Thus, I present this information cautiously and with a strong "use at your own risk" warning. If you care to proceed, I recommend you update your Linux kernel to the latest possible version and then proceed as follows:

    +

    Another possible solution is documented in a Web forum post. Be aware, though, that this procedure involves using the efibootmgr utility on Macs, which has been known to damage the firmware on some Macs. Other reports indicate that this problem has been fixed with 3.3.0 and later kernels. Thus, I present this information cautiously and with a strong "use at your own risk" warning. If you care to proceed, I recommend you update your Linux kernel to the latest possible version and then proceed as follows:

      @@ -987,8 +1021,6 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi
    -

    Some sources suggest that delayed launches of rEFInd on Macs are more common when installing rEFInd to the ESP, so if you've done this, you could try re-installing it to your OS X boot partition.

    -

    Fixing Wake Problems

    @@ -1049,13 +1081,13 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi

    This example assumes that your ESP is mounted at /boot/efi and that rEFInd is installed in EFI/refind on that partition. If you've mounted your ESP elsewhere, or installed rEFInd elsewhere, you should adjust the command appropriately.

    -

    The same procedure works in OS X, with the caveat that the ESP isn't normally mounted in OS X and rEFInd is installed to the OS X boot partition by default. You'll also need to use sudo to acquire root privileges. Thus, you'd probably use a command like the following in OS X:

    +

    The same procedure works in OS X, with the caveat that the ESP isn't normally mounted in OS X. Thus, you must first mount the ESP, as described earlier, in the section on manually installing rEFInd in OS X. (You can forego this step if you installed to the OS X root partition.) You'll also need to use sudo to acquire root privileges. Thus, you'd probably use a command like the following in OS X:

    -$ sudo rm -r /EFI/refind
    +$ sudo rm -r /Volumes/esp/EFI/refind
     
    -

    Many variants of both of these commands are possible on both OS X and Linux. For instance, you'd probably use sudo on Ubuntu; and if you installed rEFInd to your ESP on a Mac, you'd need to first mount the ESP and include its path in the rm command.

    +

    Many variants of both of these commands are possible on both OS X and Linux. For instance, you'd probably use sudo on Ubuntu.

    If you installed via an RPM or Debian package in Linux, using your package manager will remove the package files, but not the files that the installer places on your ESP. Thus, you must uninstall those files manually, as just described. To complete the job, you'll also have to remove /boot/refind_linux.conf, and perhaps the /etc/refind.d directory.

    @@ -1074,9 +1106,9 @@ Timeout: 10 seconds BootOrder: 0007 Boot0007* CD/DVD Drive - + -

    This example shows use of efibootmgr's --verbose (-v) option to display boot loaders so as to identify which one is rEFInd, followed by --delete-bootnum (-B) to delete a boot program and --bootnum (-b) 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 loader at this point! If you already have another one installed, you may want to check the BootOrder 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 --bootorder (-o) option; consult efibootmgr's man page for details.

    +

    This example shows use of efibootmgr's --verbose (-v) option to display boot programs so as to identify which one is rEFInd, followed by --delete-bootnum (-B) to delete a boot program and --bootnum (-b) 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 BootOrder 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 --bootorder (-o) option; consult efibootmgr's man page for details.

    If you're not using Linux, you may be able to find a utility that serves a similar function. The OS X bless utility (or its GUI equivalent, the Startup Disk item in System Preferences) should do the trick; but Macs pick up standard OS X boot loaders when they boot and find that a configured non-standard boot loader is missing, so this shouldn't be necessary on Macs. Under Windows, the bcdedit command, described in the section on installing rEFInd under Windows, may work, although I've not attempted this.

    diff --git a/docs/refind/linux.html b/docs/refind/linux.html index 42a4b6e..a58502c 100644 --- a/docs/refind/linux.html +++ b/docs/refind/linux.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

    Originally written: 3/19/2012; last Web page update: -7/28/2014, referencing rEFInd 0.8.3

    +12/8/2014, referencing rEFInd 0.8.4

    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 622367a..ff21ec3 100644 --- a/docs/refind/revisions.html +++ b/docs/refind/revisions.html @@ -14,7 +14,7 @@

    by Roderick W. Smith, rodsmith@rodsbooks.com

    -

    Last Web page update: 7/6/2014

    +

    Last Web page update: 12/8/2014

    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!

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

      +
    • 0.8.4 (12/8/2014)—OS X 10.10 ("Yosemite") made changes that necessitated alterations to both rEFInd's install.sh script and rEFInd defaults. Specifically, Yosemite now uses a form of logical volume management (LVM) that makes installing rEFInd to the OS X root directory impossible, so the default location is changed to the ESP. Changes to the default for dont_scan_volumes are necessary to make the new location for the OS X boot loader show up. Another big change is in the new (but experimental) support for network booting, with the help of iPXE. See the BUILDING.txt file in the source package for details on how to build and install the necessary files. A new option for refind.conf, enable_and_lock_vmx, sets the VMX bit on Intel CPUs, which is necessary for booting some hypervisors, such as Hyper-V. This feature can be set on many computers' EFIs, but some, such as Macs, lack this ability. (Do not set this option on AMD CPUs or older Intel CPUs that lack this feature, though!) If rEFInd can't find its icons directory, it now drops back to text mode. A bug in dont_scan_files has been fixed, enabling you to specify a complete path to certain special-case boot loaders to omit them from scans. Finally, I've updated the icons for Fedora and Ubuntu and added an icon for Xubuntu.
    • +
    • 0.8.3 (7/6/2014)—This version introduces a number of minor bug fixes and feature improvements. The most user-visible of these are that on Macs, rEFInd now displays a partition's label for BIOS-bootable OSes on filesystems that rEFInd can't read; and you can now pass timeout = -1 in refind.conf to have rEFInd boot the default OS immediately unless there's a keypress when rEFInd loads, in which case that keypress is read as a shortcut key. A change that's less likely to be noticed is that the default setting for scan_all_linux_kernels is now true. Since this option had been uncommented in the sample configuration file, this change will not affect most people. I've fixed a bug that caused rEFInd to unload drivers as soon as they were loaded. This didn't affect rEFInd's drivers because they ignored the relevant EFI calls; but this was preventing some other drivers from working. I've added two new icons, one for Mythbuntu and the other for the Clover boot manager. Finally, I've removed Oracle's GPLv2 code from the core filesystem driver code, since it was incompatible with the GPLv3 used by the Btrfs driver. This change shouldn't affect the operation of the drivers, but there's a slim chance that it will.
    • 0.8.2 (6/8/2014)—I've continued to refine the UEFI BIOS-mode boot code with this version; it now uses the BIOS-mode boot entries provided by the firmware by default, and actively scans for new entries only if the deep_uefi_legacy_scan token is present in refind.conf. This change is motivated by reports I've received of BIOS-mode boot entries multiplying on some systems; however, a deep scan is required to detect the second and subsequent disks on other computers. A second important change is that the default selection is now the last-booted item rather than the first item in the list. You can still set a fixed default via the default_selection token, and in fact if you provide a list that begins with +, the default will be the previously-booted item unless it can't be found, in which case the subsequent items in the list will be tried. Minor changes include the addition of an icon for Mageia Linux, a minor bug fix in GUID-parsing code, and an update of my personal build system from TianoCore UDK2010.SR1.UP1.P1 to UDK2014. This last item will affect anybody else who uses TianoCore to build rEFInd, since some default paths have changed, so you may need to update yourself or adjust the path in Make.tiano.
    • diff --git a/docs/refind/secureboot.html b/docs/refind/secureboot.html index 9141033..59edf75 100644 --- a/docs/refind/secureboot.html +++ b/docs/refind/secureboot.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      Originally written: 11/13/2012; last Web page update: -7/28/2014, referencing rEFInd 0.8.3

      +12/8/2014, referencing rEFInd 0.8.4

      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/themes.html b/docs/refind/themes.html index 3b1c8dd..f27db13 100644 --- a/docs/refind/themes.html +++ b/docs/refind/themes.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      Originally written: 4/19/2012; last Web page update: -11/6/2014, referencing rEFInd 0.8.3

      +12/8/2014, referencing rEFInd 0.8.4

      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 13cd4cb..20c52a1 100644 --- a/docs/refind/todo.html +++ b/docs/refind/todo.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      Originally written: 3/14/2012; last Web page update: -7/6/2014, referencing rEFInd 0.8.3

      +12/8/2014, referencing rEFInd 0.8.4

      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!

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

      upper-left corner of the screen. Having an option to support a transparent background is desirable to some users. -
  • +
  • When delivering rEFInd as a boot loader from a network server, + rEFInd is limited to its default options and can boot only local + OSes, not network OSes. The cause is that the server delivers a + single file, so rEFInd is divorced from its configuration and + support files.
  • + +
  • Known bugs that need squashing: @@ -307,9 +313,6 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      -
    • EFI supports network boots. rEFInd doesn't, but it would be nice if - it would.
    • -
    • There's currently no way to create a manual boot stanza for a BIOS-booted OS. This isn't a big priority for me personally, but I can see how it could be for some people.
    • @@ -409,6 +412,11 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

      that there were problems with the installation, although this isn't really the case. +
    • rEFInd's support for network booting is primitive and relies on the + external iPXE package. In my own testing, iPXE retrieves the + BIOS-mode boot loader from some servers that offer both, which + makes it useless on those networks.
    • +
    • A Mac-specific package is highly desirable.
  • diff --git a/docs/refind/using.html b/docs/refind/using.html index 08f19da..d0c0abc 100644 --- a/docs/refind/using.html +++ b/docs/refind/using.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com

    Originally written: 3/14/2012; last Web page update: -7/6/2014, referencing rEFInd 0.8.3

    +12/8/2014, referencing rEFInd 0.8.4

    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 f5dae71..05e52fc 100755 --- a/install.sh +++ b/install.sh @@ -136,15 +136,19 @@ GetParams() { shift done + if [[ "$InstallToEspOnMac" == 0 && "$RootDir" == '/' && "$TargetDir" == '/EFI/BOOT' ]] ; then + echo "You may use --notesp OR --usedefault, but not both! Aborting!" + exit 1 + fi if [[ "$RootDir" != '/' && "$TargetDir" == '/EFI/BOOT' ]] ; then - echo "You may use --usedefault OR --root, but not both! Aborting!" + echo "You may use --root OR --usedefault, but not both! Aborting!" exit 1 fi if [[ "$TargetDir" != '/System/Library/CoreServices' && "$OwnHfs" == '1' ]] ; then echo "If you use --ownhfs, you may NOT use --usedefault! Aborting!" exit 1 fi - + exit RLConfFile="$RootDir/boot/refind_linux.conf" EtcKeysDir="$RootDir/etc/refind.d/keys" } # GetParams() diff --git a/mkdistrib b/mkdistrib index 545f458..9386799 100755 --- a/mkdistrib +++ b/mkdistrib @@ -50,7 +50,7 @@ rm -rf debian/refind debian/*.log # Prepare a place and copy files there.... mkdir -p ../snapshots/$1/refind-$1/icons cp --preserve=timestamps icons/*png ../snapshots/$1/refind-$1/icons/ -cp -a debian docs images keys fonts banners include EfiLib libeg mok refind filesystems gptsync refind.spec install.sh mkrlconf.sh mvrefind.sh CREDITS.txt NEWS.txt BUILDING.txt COPYING.txt LICENSE.txt README.txt refind.inf Make.tiano Make.common Makefile refind.conf-sample ../snapshots/$1/refind-$1 +cp -a debian docs images keys fonts banners include EfiLib libeg mok net refind filesystems gptsync refind.spec install.sh mkrlconf.sh mvrefind.sh CREDITS.txt NEWS.txt BUILDING.txt COPYING.txt LICENSE.txt README.txt refind.inf Make.tiano Make.common Makefile refind.conf-sample ../snapshots/$1/refind-$1 # Go there and prepare a souce code zip file.... cd ../snapshots/$1/ diff --git a/refind.spec b/refind.spec index 4abdb99..ecbf456 100644 --- a/refind.spec +++ b/refind.spec @@ -159,7 +159,7 @@ fi # wiping out the just-updated files. %changelog -* Sun Dec 7 2014 R Smith - 0.8.4 +* Mon Dec 8 2014 R Smith - 0.8.4 - Updated spec file for 0.8.4 * Sun Jul 6 2014 R Smith - 0.8.3 - Updated spec file for 0.8.3 diff --git a/refind/main.c b/refind/main.c index e58ac56..59a4944 100644 --- a/refind/main.c +++ b/refind/main.c @@ -176,7 +176,7 @@ static VOID AboutrEFInd(VOID) if (AboutMenu.EntryCount == 0) { AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT); - AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.8.3.90"); + AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.8.4"); AddMenuInfoLine(&AboutMenu, L""); AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer"); AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2014 Roderick W. Smith"); -- 2.39.2