]> code.delx.au - refind/commitdiff
Tweaks for OS X 10.10 (Yosemite) and new support to enable and lock
authorsrs5694 <srs5694@users.sourceforge.net>
Thu, 20 Nov 2014 22:04:38 +0000 (17:04 -0500)
committersrs5694 <srs5694@users.sourceforge.net>
Thu, 20 Nov 2014 22:04:38 +0000 (17:04 -0500)
VMX support on Intel CPUs.

19 files changed:
NEWS.txt
docs/refind/configfile.html
docs/refind/drivers.html
docs/refind/getting.html
docs/refind/index.html
docs/refind/installing.html
docs/refind/linux.html
docs/refind/secureboot.html
docs/refind/themes.html
docs/refind/todo.html
docs/refind/using.html
icons/os_fedora.png
icons/os_ubuntu.png
install.sh
refind.conf-sample
refind/config.c
refind/config.h
refind/global.h
refind/main.c

index 985837f36ca286177e968ab9ed8fd914de46815b..5ef467f11247b51666df84f2cb3f9dad36addab5 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,3 +1,17 @@
+0.8.4 (11/??/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
+  result in some stray Recovery HD entries on some Macs.
+
+- Updated icons for Fedora and Ubuntu and added an icon for Xubuntu.
+
+- Added new configuration option, "enable_and_lock_vmx", which sets an
+  Intel CPU feature that's required for some types of virtualization to
+  work. Most EFIs enable setting this feature in their own setup utilities,
+  but some (such as most Macs) don't.
+
 0.8.3 (7/6/2014):
 -----------------
 
index 6dccbb69cc8b41f72bd5d12931c25f687dd493df..5d47e93c921df76c64afd7f693a2af2f5d5507e9 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-7/6/2014, referencing rEFInd 0.8.3</p>
+7/28/2014, referencing rEFInd 0.8.3</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>
@@ -130,7 +130,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <div style="float:right; width:55%">
 
-<p>Many casual users will be able to use rEFInd without making changes to its settings; in its default configuration, the boot manager automatically detects all the EFI boot loader programs you have on your ESP (or your OS X boot partition, in the case of Macs) and displays icons for them. On Macs, rEFInd also presents legacy BIOS boot options by default. Sometimes, though, you may want to tweak rEFInd's configuration. Sometimes you can obtain your desired results by adjusting the filenames of your boot loaders. Other times, you can edit rEFInd's configuration file, <tt>refind.conf</tt>, which resides in the same directory as its binary file (<tt>refind_x64.efi</tt> or whatever you've renamed it).</p>
+<p>Many casual users will be able to use rEFInd without making changes to its settings; in its default configuration, the boot manager automatically detects all the EFI boot loader programs you have on your EFI System Partition (ESP) (or your OS X boot partition, in the case of Macs) and displays icons for them. On Macs, rEFInd also presents legacy BIOS boot options by default. Sometimes, though, you may want to tweak rEFInd's configuration. Sometimes you can obtain your desired results by adjusting the filenames of your boot loaders. Other times, you can edit rEFInd's configuration file, <tt>refind.conf</tt>, which resides in the same directory as its binary file (<tt>refind_x64.efi</tt> or whatever you've renamed it).</p>
 
 </div>
 
@@ -330,12 +330,12 @@ timeout 20
 <tr>
    <td><tt>dont_scan_volumes</tt> or <tt>don't_scan_volumes</tt></td>
    <td>filesystem or partition label(s)</td>
-   <td>Adds the specified volume or volumes to a volume "blacklist"&mdash;these filesystems are <i>not</i> scanned for EFI boot loaders. This may be useful to keep unwanted EFI boot entries, such as for a Macintosh recovery partition, from appearing on the main list of boot loaders. The default value is <tt>"Recovery HD", LRS_ESP</tt>, to keep the Mac OS X and Lenovo Windows recovery volumes from appearing. (These should get their own tools icon instead&mdash;see the <tt>showtools</tt> token.) Note that on a Macintosh with whole-disk encryption, you may need to uncomment this token and leave <tt>"Recovery HD"</tt> <i>off</i> the list to boot the system. You can use <tt>dont_scan_volumes</tt> to hide disks or partitions from legacy-mode scans, too. In this case, you can enter any part of the description that appears beneath the icons to hide entries that include the string you specify.</td>
+   <td>Adds the specified volume or volumes to a volume "blacklist"&mdash;these filesystems are <i>not</i> scanned for EFI boot loaders. This may be useful to keep unwanted EFI boot entries, such as for a Macintosh recovery partition, from appearing on the main list of boot loaders. The default value is <tt>LRS_ESP</tt>, to keep the Lenovo Windows recovery volume from appearing. (This volume should get its own tools icon instead&mdash;see the <tt>showtools</tt> token.) You can use <tt>dont_scan_volumes</tt> to hide disks or partitions from legacy-mode scans, too. In this case, you can enter any part of the description that appears beneath the icons to hide entries that include the string you specify.</td>
 </tr>
 <tr>
    <td><tt>dont_scan_dirs</tt> or <tt>don't_scan_dirs</tt></td>
    <td>directory path(s)</td>
-   <td>Adds the specified directory or directories to a directory "blacklist"&mdash;these directories are <i>not</i> scanned for boot loaders. You may optionally precede a directory path with a volume name and a colon to limit the blacklist to that volume; otherwise all volumes are affected. For instance, <tt>EFI/BOOT</tt> prevents scanning the <tt>EFI/BOOT</tt> directory on <i>all</i> volumes, whereas <tt>ESP:EFI/BOOT</tt> blocks scans of <tt>EFI/BOOT</tt> on the volume called <tt>ESP</tt> but not on other volumes. You can use a filesystem number, as in <tt>fs0</tt>, in place of a volume name. This token may be useful to keep duplicate boot loaders out of the menu; or to keep drivers or utilities out of the boot menu, if you've stored them in a subdirectory of <tt>EFI</tt>. This option takes precedence over <tt>also_scan_dirs</tt>; if a directory appears in both lists, it will <i>not</i> be scanned. To add directories to the default list rather than replace the list, specify <tt>+</tt> as the first option, as in <tt>dont_scan_dirs + EFI/dontscan</tt>.</td>
+   <td>Adds the specified directory or directories to a directory "blacklist"&mdash;these directories are <i>not</i> scanned for boot loaders. You may optionally precede a directory path with a volume name and a colon to limit the blacklist to that volume; otherwise all volumes are affected. For instance, <tt>EFI/BOOT</tt> prevents scanning the <tt>EFI/BOOT</tt> directory on <i>all</i> volumes, whereas <tt>ESP:EFI/BOOT</tt> blocks scans of <tt>EFI/BOOT</tt> on the volume called <tt>ESP</tt> but not on other volumes. You can use a filesystem number, as in <tt>fs0</tt>, in place of a volume name. This token may be useful to keep duplicate boot loaders out of the menu; or to keep drivers or utilities out of the boot menu, if you've stored them in a subdirectory of <tt>EFI</tt>. This option takes precedence over <tt>also_scan_dirs</tt>; if a directory appears in both lists, it will <i>not</i> be scanned. To add directories to the default list rather than replace the list, specify <tt>+</tt> as the first option, as in <tt>dont_scan_dirs + EFI/dontscan</tt>. The default for this token is <tt>EFI/tools, EFI/tools/memtest86, EFI/tools/memtest, EFI/memtest86, EFI/memtest, com.apple.recovery.boot</tt>.</td>
 </tr>
 <tr>
    <td><tt>dont_scan_files</tt> or <tt>don't_scan_files</tt></td>
index 3c06aed85d953a7cfd1d81749c5e3580edc00c7e..14b5a5c45c2d92e4d4f2e09ea306da864fc62100 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 4/19/2012; last Web page update:
-7/6/2014, referencing rEFInd 0.8.3</p>
+7/28/2014, referencing rEFInd 0.8.3</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>
@@ -163,7 +163,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <!-- <p class="sidebar"><b>Tip:</b> Some Linux installation media come as <i>hybrid ISO</i> files, which can be written to either optical discs or USB flash drives for installation. Some of these media, though, are useless for installing to EFI systems from USB flash drives&mdash;unless your computer supports ISO-9660 on non-optical media. rEFInd's ISO-9660 driver provides this support. To use such a hybrid image from USB flash drive, you must boot using rEFInd on another disk that has the ISO-9660 driver installed. rEFInd should then provide an option to boot from the USB flash drive. I cannot guarantee that the installer will boot at this point, but it might.</p> -->
 
-<li>You can load a filesystem driver to gain access to files on a filesystem other than FAT (or HFS+ on Macs or ISO-9660 on some systems). This is most likely to be useful on a Linux installation, since a filesystem driver can enable you to store a Linux kernel with EFI stub loader or for use by ELILO on a Linux-native filesystem if your ESP is getting crowded.</li>
+<li>You can load a filesystem driver to gain access to files on a filesystem other than FAT (or HFS+ on Macs or ISO-9660 on some systems). This is most likely to be useful on a Linux installation, since a filesystem driver can enable you to store a Linux kernel with EFI stub loader or for use by ELILO on a Linux-native filesystem if your EFI System Partition (ESP) is getting crowded.</li>
 
 <li>You can load a driver for a plug-in disk controller to give the EFI access to its disks. Note that this is <i>not</i> required if you place your boot loader (and perhaps your OS kernel) on another disk, or if the plug-in disk controller includes EFI-capable firmware. It could be handy, perhaps in conjunction with a filesystem driver, to enable the EFI to read a boot loader or kernel from a disk on a plug-in controller, though.</li>
 
index b26523b035e55e71631c50838f4dfb28f3a3b444..0c0b5172b90a1c9b448dd321236fc08f8a1c9625 100644 (file)
@@ -293,11 +293,6 @@ computer.</p>
     collection</a></b>&mdash;This site creates packages for a number of
     OSes using its own packaging system.</li>
 
-<li><b>Slackware</b>&mdash;Although it doesn't seem to provide an official
-    build, <a href="http://franck-barbenoire.fr/spip.php?article198">this
-    site</a> has links to rEFInd binary packages for Slackware 13.37 and
-    14.0.</li>
-
 </ul>
 
 <p>To the best of my knowledge, no other Linux distribution yet includes rEFInd in its repositories. That's likely to change in time. If you hear of rEFInd being included in an OS's official package set, feel free to <a href="mailto:rodsmith@rodsbooks.com">drop me a line.</a></p>
index 6df301e9c18e1bb163bcc41968e84fdd2604c896..e7634bf9bcc00ac5537fb40fa60bf98e029a9063 100644 (file)
@@ -156,6 +156,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <li class="tight"><a href="installing.html">Installing rEFInd</a>&mdash;Instructions for installing rEFInd, using Linux, OS X, and Windows</li>
 
+<li class="tight"><a href="yosemite.html">rEFInd and OS X 10.10 (Yosemite)</a>&mdash;Apple's latest OS X makes some changes that require your attention</li>
+
 <li class="tight"><a href="using.html">Using rEFInd</a>&mdash;Basic usage instructions for the boot loader</li>
 
 <li class="tight"><a href="configfile.html">Configuring the Boot Manager</a>&mdash;For advanced users, information on customizing a rEFInd installation</li>
index 6e78b65a9c6e28255457494864400e05160f20ee..ec81622523b7601f2e0addded8e199dc9c8ef9e2 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-7/6/2014, referencing rEFInd 0.8.3</p>
+8/14/2014, referencing rEFInd 0.8.3</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>
@@ -132,7 +132,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p><b>Don't be scared by the length of this page!</b> Only portions of this page apply to any given user, and most people can install rEFInd from an RPM or Debian package in a matter of seconds or by using the <tt>install.sh</tt> script in minute or two.</p>
 
-<p>Once you've obtained a rEFInd binary file, you must install it to your computer's ESP (or conceivably to some other location). The details of how you do this depend on your OS and your computer (UEFI-based PC vs. Macintosh). The upcoming sections provide details. See the Contents sidebar to the left for links to specific installation procedures. For most Linux users, an RPM or Debian package is the best way to go. If your Linux system doesn't support these formats, though, or if you're running OS X, using the <tt>install.sh</tt> script can be a good way to go. If you're using Windows, you'll have to install manually.</p>
+<p>Once you've obtained a rEFInd binary file, you must install it to your computer's EFI System Partition (ESP) (or conceivably to some other location). The details of how you do this depend on your OS and your computer (UEFI-based PC vs. Macintosh). The upcoming sections provide details. See the Contents sidebar to the left for links to specific installation procedures. For most Linux users, an RPM or Debian package is the best way to go. If your Linux system doesn't support these formats, though, or if you're running OS X, using the <tt>install.sh</tt> script can be a good way to go. If you're using Windows, you'll have to install manually.</p>
 
 <p class="sidebar" style="width:95%"><b>Important:</b> A rEFInd zip file, when uncompressed, creates a directory called <tt>refind-<i>version</i></tt>, where <tt><i>version</i></tt> is the version number. This directory includes a subdirectory called <tt>refind</tt> that holds the boot loader, along with another that holds documentation, as well as miscellaneous files in <tt>refind-<i>version</i></tt> itself. When I refer to "the <tt>refind</tt> directory" on this page, I mean the directory with that precise name, not the <tt>refind-<i>version</i></tt> directory that is its parent.</p>
 
@@ -218,7 +218,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Either command produces output similar to that described for <a href="#installsh">using the <tt>install.sh</tt> script,</a> so you can check it for error messages and other signs of trouble. The package file installs rEFInd and registers it with the EFI to be the default boot loader. The script that runs as part of the installation process tries to determine if you're using Secure Boot, and if so it will try to configure rEFInd to launch using shim; however, this won't work correctly on all systems. Ubuntu 12.10 users who are booting with Secure Boot active should be wary, since the resulting installation will probably try to use Ubuntu's version of shim, which won't work correctly with rEFInd.</p>
 
-<p>If you're using Ubuntu, you should be able to install the PPA as follows:</p>
+<a name="ppa">
+<p>If you're using Ubuntu, you should be able to install the PPA as follows:</p></a>
 
 <pre class="listing">$ <tt class="userinput">sudo apt-add-repository ppa:rodsmith/refind</tt>
 $ <tt class="userinput">sudo apt-get update</tt>
@@ -584,13 +585,11 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 
 <li>Type <b><tt>cd EFI\refind</tt></b> to change into the <tt>refind</tt> subdirectory</li>
 
-<li>Type <b><tt>del refind_ia32.efi</tt></b> to delete the unused 32-bit version of rEFInd. (Windows only supports EFI boots on 64-bit EFI implementations and in 64-bit versions of Windows.)</li>
-
-<li>Optionally type <tt class="userinput">rd /s drivers_ia32</tt> to delete the <tt>drivers_ia32</tt> directory and its contents. You may also want to selectively delete some of the drivers in the <tt>drivers_x64</tt> directory, depending on your needs. Unnecessary drivers may slow the rEFInd start process. See the <a href="drivers.html">page on drivers</a> for more on this topic.</li>
+<li>You may want to selectively delete some of the drivers in the <tt>drivers_x64</tt> or <tt>drivers_ia32</tt> directory, depending on your architecture and needs. Unnecessary drivers will slow the rEFInd start process. See the <a href="drivers.html">page on drivers</a> for more on this topic.</li>
 
 <li>Type <b><tt>rename refind.conf-sample refind.conf</tt></b> to rename rEFInd's configuration file.</li>
 
-<li>Type <b><tt>bcdedit /set {bootmgr} path \EFI\refind\refind_x64.efi</tt></b> to set rEFInd as the default EFI boot program. Note that <tt>{bootmgr}</tt> is entered as such; that's not a notation for a variable.</li>
+<li>Type <b><tt>bcdedit /set {bootmgr} path \EFI\refind\refind_x64.efi</tt></b> to set rEFInd as the default EFI boot program. Note that <tt>{bootmgr}</tt> is entered as such; that's not a notation for a variable. Also, change <tt>refind_x64.efi</tt> to <tt>refind_ia32.efi</tt> on systems with 32-bit EFIs. Such computers are rare, and most of them are tablets. Check your Windows bit depth to determine which binary you should use.</li>
 
 <li>If you like, type <b><tt>bcdedit /set {bootmgr} description "<i>rEFInd description</i>"</tt></b> to set a description (change <tt><i>rEFInd description</i></tt> as you see fit).</li>
 
@@ -602,7 +601,7 @@ $ <b>ioreg -l -p IODeviceTree | grep firmware-abi</b>
 
 <li>You can rename files on the ESP. as described in the next section, <a href="#naming">Alternative Naming Options.</a></li>
 
-<li>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 <b><tt>sudo apt-get install efibootmgr</tt></b> to install <tt>efibootmgr</tt>, but you can then use that program as described <a href="#efibootmgr">earlier</a>. (If you're using Ubuntu, you'll need to precede the command with <b><tt>sudo</tt></b>.</li>
+<li>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 <b><tt>sudo apt-get install efibootmgr</tt></b> to install <tt>efibootmgr</tt>, but you can then use that program as described <a href="#efibootmgr">earlier</a>. (If you're using Ubuntu, you'll need to precede the command with <b><tt>sudo</tt></b>. If you use an Ubuntu image, you can install rEFInd <a href="#ppa">via its PPA,</a> which is an easy way to do the job. (In fact, the rEFInd PPA depends on the <tt>efibootmgr</tt> 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.</li>
 
 <li>You may be able to use rEFInd's bootable CD image to use rEFInd to boot an OS that's been installed but rendered inoperable because of changes to your boot order. You can then use <tt>efibootmgr</tt>, <tt>bless</tt>, or some other tool to restore rEFInd as the default boot loader.</li>
 
@@ -1057,7 +1056,7 @@ Boot0007* CD/DVD Drive</pre>
 
 <p><a href="index.html">Go to the main rEFInd page</a></p>
 
-<p><a href="using.html">Learn how to use rEFInd</a></p>
+<p><a href="yosemite.html">Comments on rEFInd and OS X 10.10 (Yosemite)</a></p>
 
   <p><a href="http://www.rodsbooks.com/">Return</a> to my main Web page.</p>
 </body>
index 66fa9f5bf9527cbd9cd517745f92613118b54714..42a4b6e5f5ad204221cd407aa178d014d802ab3e 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/19/2012; last Web page update:
-7/6/2014, referencing rEFInd 0.8.3</p>
+7/28/2014, referencing rEFInd 0.8.3</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>
@@ -190,8 +190,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <li>Copy the relevant driver file for your filesystem and architecture to
     the <tt>drivers</tt> or <tt>drivers_<tt class="variable">arch</tt></tt>
-    subdirectory of the rEFInd installation directory on the ESP. You may
-    need to create this subdirectory, too.</li>
+    subdirectory of the rEFInd installation directory on the EFI System
+    Partition (ESP). You may need to create this subdirectory, too.</li>
 
 <li>Create a <tt>refind_linux.conf</tt> file in your <tt>/boot</tt>
     directory. The <tt>mkrlconf.sh</tt> script that comes with rEFInd
index 82b4517b70673462dd6b89df73e7a424ed17cf45..914103397efe8f27caf601e3341b56f903d4586c 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 11/13/2012; last Web page update:
-7/6/2014, referencing rEFInd 0.8.3</p>
+7/28/2014, referencing rEFInd 0.8.3</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>
@@ -205,7 +205,7 @@ Windows 8, this isn't an option for it. Unfortunately, the shim and PreLoader pr
 
 <p class="sidebar">Shim's author is working on merging it and PreLoader. Thus, future versions of shim may provide the advantages of both programs.</p>
 
-<p>PreLoader is easier to set up on a distribution that doesn't support shim because PreLoader doesn't rely on keys; instead, you tell it which binaries you trust and it will let you launch them. This works well on a system with boot managers, boot loaders, and kernels that seldom change. It's not a good solution for distribution maintainers, though, because it requires that users manually add binaries to PreLoader's list of approved binaries when the OS is installed and every time those binaries change. Also, PreLoader relies on a helper program, HashTool, to enroll hashes. (This is Geek for "tell the computer that a binary is OK.") Unfortunately, HashTool can enroll hashes only from the partition from which it was launched, so if you want to use rEFInd to launch Linux kernels directly, it's easiest if you mount your ESP at <tt>/boot</tt> in Linux or copy your kernels to the ESP. Another approach is to copy <tt>HashTool.efi</tt> to the partition that holds your kernel and rename it to almost anything else. rEFInd will then treat it like an OS boot loader and create a menu entry for it, enabling you to launch it as needed.</p>
+<p>PreLoader is easier to set up on a distribution that doesn't support shim because PreLoader doesn't rely on keys; instead, you tell it which binaries you trust and it will let you launch them. This works well on a system with boot managers, boot loaders, and kernels that seldom change. It's not a good solution for distribution maintainers, though, because it requires that users manually add binaries to PreLoader's list of approved binaries when the OS is installed and every time those binaries change. Also, PreLoader relies on a helper program, HashTool, to enroll hashes. (This is Geek for "tell the computer that a binary is OK.") Unfortunately, HashTool can enroll hashes only from the partition from which it was launched, so if you want to use rEFInd to launch Linux kernels directly, it's easiest if you mount your EFI System Partition (ESP) at <tt>/boot</tt> in Linux or copy your kernels to the ESP. Another approach is to copy <tt>HashTool.efi</tt> to the partition that holds your kernel and rename it to almost anything else. rEFInd will then treat it like an OS boot loader and create a menu entry for it, enabling you to launch it as needed.</p>
 
 <p>Beginning with version 0.5.0, rEFInd can communicate with the shim system to authenticate boot loaders. If a boot loader has been signed by a valid UEFI Secure Boot key, a valid shim key, or a valid MOK key, rEFInd will launch it. rEFInd will also launch unsigned boot loaders or those with invalid signatures <i>if</i> Secure Boot is disabled in or unsupported by the firmware. (If that's your situation, you needn't bother reading this page.) PreLoader is designed in such a way that it requires no explicit support in rEFInd to work.</p>
 
index 096086043edfe344169d3efac4c88561eca4986f..3b1c8dd3421cc8d8546b19edca524a4a6dd006c9 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 4/19/2012; last Web page update:
-7/6/2014, referencing rEFInd 0.8.3</p>
+11/6/2014, referencing rEFInd 0.8.3</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>
@@ -288,6 +288,10 @@ to be tedious.</p>
 
 <li>Zhu Qunying has created a <a href="http://zhu-qy.blogspot.com/2014/02/a-slackware-banner-logo-for-refind-boot.html">Slackware-themed banner logo</a> for rEFInd. Although it's not a full theme, I thought I'd mention it here.</li>
 
+<li>naymlezwun has created an <a href="http://naymlezwun.deviantart.com/art/rEFInd-OS-X-Theme-469807750">OS X theme</a> for rEFInd.</li>
+
+<li>jamaladdeen on deviantART has created an <a href="http://jamaladdeen.deviantart.com/art/rEFInd-OSX-Standard-Theme-1-0-492876132?ga_submit_new=10%253A1415269035&ga_type=edit&ga_changes=1&ga_recent=1">OS X theme</a> that resembles the OS X environment.</li>
+
 </ul>
 
 <p>If you've created or discovered another rEFInd theme, please <a href="mailto:rodsmith@rodsbooks.com">tell me about it</a> so that I can provide a link to it from this page.</p>
index df3d665c915d2d337d6b6db27874981721a219bc..13cd4cbc9eb9b9ab26e00ca5159497fb6c017d16 100644 (file)
@@ -329,6 +329,17 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
        stanzas override auto-detected boot loader definitions for the same
        boot loader file.</li>
 
+    <li>Along similar lines, some users have asked for a way to take
+       detected boot programs and create a set of manual boot stanzas for
+       them, so that they can be modified manually.</li>
+
+    <li>GRUB provides a configuration-file command called <tt>outb</tt>
+       that enables manipulating hardware registers. Something similar,
+       via the <tt>mm</tt> command, can be done in the EFI shell. I'd like
+       to add such a feature to rEFInd, since it enables doing things like
+       disabling one or another video output on Macs with two video
+       cards.</li>
+
     <li>I have thoughts about creating an EFI configuration tool and
        information utility&mdash;something to tell you about your hard
        disks, enable you to manage MOKs, adjust boot loader priority in
index 42b43543462ac75fb245a4cd0c8439486b31a060..08f19da367539dc2381f3e6e7ee69dbc1d8572a0 100644 (file)
@@ -148,6 +148,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <li class="tight"><a href="#legacy">Booting Legacy OSes</a></li>
 
+<li class="tight"><a href="#delays">Reducing Startup Delays</a></li>
+
 </ul>
 
 </div>
@@ -266,7 +268,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 </tr>
 <tr>
    <td><i>F10</i></td>
-   <td>Saves an image of the current screen in the file <tt>screenshot_<tt class="variable">###</tt>.bmp</tt>, where <tt class="variable">###</tt> is a sequence number starting with <tt>001</tt>, in the ESP's root directory</td>
+   <td>Saves an image of the current screen in the file <tt>screenshot_<tt class="variable">###</tt>.bmp</tt>, where <tt class="variable">###</tt> is a sequence number starting with <tt>001</tt>, in the EFI System Partition's (ESP's) root directory</td>
 </tr>
 <tr>
    <td><i>F12</i> or (on some keyboards) <i>Eject</i></td>
@@ -346,6 +348,36 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>On both PCs and Macs, if you see non-functional legacy boot options, you can remove them by using the <tt>dont_scan_volumes</tt> token in <tt>refind.conf</tt>: Add any substring from the description that appears when you highlight the non-functional option to the set of options to have rEFInd ignore that entry. (Note that you must provide a complete volume name when excluding EFI volumes from scanning. The legacy-mode exclusion operation is more flexible in this regard.)</p>
 
+<a name="delays">
+<h2>Reducing Startup Delays</h2>
+</a>
+
+<p>You may discover that rEFInd takes a while to appear on the screen compared to other boot managers and boot loaders. Ultimately, the reason is that rEFInd is doing more&mdash;it's reading more filesystems, scanning for bootable files, and so on. In most cases, rEFInd takes just a second or two longer than other boot loaders, but I've heard of (and seen) much longer delays on computers that are configured sub-optimally. Some things you can do to reduce these delays include:</p>
+
+<ul>
+
+<li><b>Remove unnecessary drivers</b>&mdash;Simply loading a driver takes a certain amount of time, and if a filesystem driver finds a filesystem to read, rEFInd will spend time scanning that filesystem for bootable files. If there are no such files, or if you're not using them, then this is wasted time. Thus, you should check the <tt>drivers</tt>, <tt>drivers_x64</tt>, or other architecture-specific drivers subdirectory to be sure it doesn't hold unnecessary drivers.</li>
+
+<li><b>Use FAT for <tt>/boot</tt></b>&mdash;This tip is a corollary of the preceding one. If you use rEFInd to boot the Linux kernel directly, and if you rely on a driver to read the Linux kernel, then you'll have to live with the time to load the driver and to scan at least one extra filesystem. If you mount your ESP at <tt>/boot</tt>, or even if you create a separate FAT <tt>/boot</tt> partition, you'll save a little time. Note, however, that most Linux distributions don't allow you to install to a system with a FAT <tt>/boot</tt> partition, so you may need to set this up after doing your initial installation. If you see symbolic links in <tt>/boot</tt>, be wary; your distribution may rely upon them, and because FAT doesn't support symbolic links, this action may cause problems when upgrading kernels. On Macs, you can use HFS+ for this purpose, since Apple's EFI implementation includes an HFS+ driver.</li>
+
+<li><b>Minimize the number of scanned filesystems</b>&mdash;There's overhead associated with every additional filesystem rEFInd scans. Thus, if you have, say, separate ext4fs root (<tt>/</tt>), <tt>/boot</tt>, <tt>/usr</tt>, <tt>/home</tt>, and <tt>/var</tt> filesystems, and if you install rEFInd's ext4fs driver, rEFInd will end up scanning at least six filesystems (counting the FAT ESP), although only one of those has Linux kernels. You can use FAT for <tt>/boot</tt> and remove the ext4fs driver to speed up the boot process, as just described; but if you prefer to avoid the downsides of that action, you can switch <tt>/boot</tt> to some other filesystem, such as ext2fs or ReiserFS. This plan will reduce the number of filesystems to be scanned and improve boot time. Alternatively, if you re-install Linux, you can reduce the number of partitions or use LVM (which rEFInd can't read) for all of your filesystems except for <tt>/boot</tt>.</li>
+
+<li><b>Use a speedier filesystem</b>&mdash;In my tests, rEFInd's ReiserFS driver is the fastest and ext2fs is the slowest, with Btrfs and ext4fs falling in-between these two. The difference is trivial on some computers but it's noticeable on others. Filesystem speed differences are more likely to be noticeable in the time it takes to boot the OS; rEFInd's own startup time is less likely to be affected by a filesystem change.</li>
+
+<li><b>Use a speedier driver</b>&mdash;rEFInd 0.7.0 introduced a read-ahead cache in its filesystem drivers, which greatly improved their speed on some systems. If you're using an older driver, try using a newer one. Pete Batard's <a href="https://github.com/pbatard/efifs">efifs drivers</a> are an alternative to rEFInd's drivers. The efifs drivers are still very new and rapidly changing. My initial impression is that some of them are quite speedy, but others are very slow.</li>
+
+<li><b>Delete or move files and directories</b>&mdash;By default, rEFInd scans the root (<tt>/</tt>) directory, <tt>/boot</tt>, and most subdirectories of <tt>/EFI</tt> on every partition that it scans. If these locations exist but contain no bootable files, they'll just slow rEFInd down. Likewise, if you use <tt>dont_scan_files</tt> to keep unused boot loaders out of the menu, rEFInd will still do much of the work of scanning those files. In all of these cases, deleting or moving the directories or files that are being scanned but that don't contain bootable options you want to see can speed things up.</li>
+
+<li><b>Use the <tt>also_scan_dirs</tt> option sparingly</b>&mdash;Using <tt>also_scan_dirs</tt> is useful in some situations, but it does add to rEFInd's task list. Use it only if you must.</li>
+
+<li><b>Reduce the <tt>scanfor</tt> list</b>&mdash;Removing items from the <tt>scanfor</tt> list in <tt>refind.conf</tt> can speed things up a bit. This is especially true on Macs, which scan for BIOS-mode boot loaders by default. If you never boot a Mac in BIOS mode, try uncommending <tt>scanfor</tt> and ensure that the <tt>hdbios</tt>, <tt>biosexternal</tt>, and <tt>cd</tt> options are <i>not</i> present. The <tt>external</tt> and <tt>optical</tt> items won't add delays <i>unless</i> the relevant media are inserted, which brings us to....</li>
+
+<li><b>Don't boot with removable media attached (unless you intend to boot from them)</b>&mdash;If you insert an optical disc into your drive or plug in a removable device like a USB flash drive, rEFInd will attempt to scan it. This will slow down rEFInd's startup process, so you shouldn't make a habit of booting with such media inserted. In fact, there's another reason not to boot with external media attached: If such a medium is infected with malware, and if your firmware is configured to boot from external media first, you'll end up running the malware, possibly infecting your computer.</li>
+
+</ul>
+
+<p>I hope these tips will help you to overcome any speed problems you're experiencing. As I said, rEFInd is reasonably fast on many computers, so you might not run into problems in the first place. If you do, though, reducing rEFInd's workload can help.</p>
+
 <hr />
 
 <p>copyright &copy; 2012&ndash;2014 by Roderick W. Smith</p>
index f977cdc814c07c0583c439d6468b1f940de3b58d..310f64a69415df62edc3ab2e083d26bd92cf9430 100644 (file)
Binary files a/icons/os_fedora.png and b/icons/os_fedora.png differ
index 344785d5223646602bac20dcf1ca3df9a80c03e2..11b614b2f4bcfd58e7d4d84b37f854f68baa9b34 100644 (file)
Binary files a/icons/os_ubuntu.png and b/icons/os_ubuntu.png differ
index 67df9ee3e5c851ec6bfab490214ddcee0d73db1a..50748d3af88a9b75042a1094be21138548d4683b 100755 (executable)
@@ -765,7 +765,7 @@ FindMountedESP() {
    InstallDir=`echo $EspLine | cut -d " " -f 6`
 
    if [[ -n "$InstallDir" ]] ; then
-      EspFilesystem=`grep "$InstallDir" /etc/mtab | uniq | grep -v autofs | cut -d " " -f 3`
+      EspFilesystem=`grep -w "$InstallDir" /etc/mtab | uniq | grep -v autofs | cut -d " " -f 3`
    fi
    if [[ $EspFilesystem != 'vfat' ]] ; then
       FindLinuxESP
index b9b46eb21fdbf6162186ae7fc740d7bc90678da4..ab7cd665ab93e0ef1999591a1d816ad1fab2a505 100644 (file)
@@ -251,26 +251,25 @@ timeout 20
 # OSes' file browsers.
 # For legacy-mode scans, you can specify any subset of the boot loader
 # description shown when you highlight the option in rEFInd.
-# The default is "Recovery HD,LRS_ESP".
+# The default is "LRS_ESP".
 #
 #dont_scan_volumes "Recovery HD"
 
 # Directories that should NOT be scanned for boot loaders. By default,
 # rEFInd doesn't scan its own directory, the EFI/tools directory, the
-# EFI/memtest directory, or the EFI/memtest86 directory. Using the
-# dont_scan_dirs option enables you to "blacklist" other directories;
-# but note that using this option removes the EFI/memtest and
-# EFI/memtest86 directories, so if you don't want them scanned, be
-# sure to include them in your new list. You might use this token to
-# keep EFI/boot/bootx64.efi out of the menu if that's a duplicate of
-# another boot loader or to exclude a directory that holds drivers
-# or non-bootloader utilities provided by a hardware manufacturer. If
-# a directory is listed both here and in also_scan_dirs, dont_scan_dirs
-# takes precedence. Note that this blacklist applies to ALL the
-# filesystems that rEFInd scans, not just the ESP, unless you precede
-# the directory name by a filesystem name, as in "myvol:EFI/somedir"
-# to exclude EFI/somedir from the scan on the myvol volume but not on
-# other volumes.
+# EFI/memtest directory, the EFI/memtest86 directory, or the
+# com.apple.recovery.boot directory. Using the dont_scan_dirs option
+# enables you to "blacklist" other directories; but be sure to use "+"
+# as the first element if you want to continue blacklisting existing
+# directories. You might use this token to keep EFI/boot/bootx64.efi out
+# of the menu if that's a duplicate of another boot loader or to exclude
+# a directory that holds drivers or non-bootloader utilities provided by
+# a hardware manufacturer. If a directory is listed both here and in
+# also_scan_dirs, dont_scan_dirs takes precedence. Note that this
+# blacklist applies to ALL the filesystems that rEFInd scans, not just
+# the ESP, unless you precede the directory name by a filesystem name,
+# as in "myvol:EFI/somedir" to exclude EFI/somedir from the scan on the
+# myvol volume but not on other volumes.
 #
 #dont_scan_dirs ESP:/EFI/boot,EFI/Dell,EFI/memtest86
 
@@ -343,6 +342,17 @@ timeout 20
 #default_selection Maintenance 23:30 2:00
 #default_selection "Maintenance,OS X" 1:00 2:30
 
+# Enable VMX bit and lock the CPU MSR if unlocked.
+# On some Intel Apple computers, the firmware does not lock the MSR 0x3A.
+# The symptom on Windows is Hyper-V not working even if the CPU
+# meets the minimum requirements (HW assisted virtualization and SLAT)
+# DO NOT SET THIS EXCEPT ON INTEL CPUs THAT SUPPORT VMX! See
+# http://www.thomas-krenn.com/en/wiki/Activating_the_Intel_VT_Virtualization_Feature!
+# for more on this subject.
+# The default is false: Don't try to enable and lock the MSR.
+#
+#enable_and_lock_vmx false
+
 # Include a secondary configuration file within this one. This secondary
 # file is loaded as if its options appeared at the point of the "include"
 # token itself, so if you want to override a setting in the main file,
@@ -411,7 +421,7 @@ menuentry Linux {
 # its GRUB 2 boot loader. Note uses of Linux-style forward slashes
 menuentry Ubuntu {
        loader /EFI/ubuntu/grubx64.efi
-       icon /EFI/refined/icons/os_linux.png
+       icon /EFI/refind/icons/os_linux.png
        disabled
 }
 
index 7afb52900a46da8cd7971cd1f7c88272a3b000a0..ba0c06b3b171ab54cc27ce9af94af5ac2915ac53 100644 (file)
@@ -669,6 +669,9 @@ VOID ReadConfig(CHAR16 *FileName)
         } else if (StriCmp(TokenList[0], L"max_tags") == 0) {
            HandleInt(TokenList, TokenCount, &(GlobalConfig.MaxTags));
 
+       } else if (StriCmp(TokenList[0], L"enable_and_lock_vmx") == 0) {
+          GlobalConfig.EnableAndLockVMX = HandleBoolean(TokenList, TokenCount);
+
         } else if ((StriCmp(TokenList[0], L"include") == 0) && (TokenCount == 2) &&
                    (StriCmp(FileName, GlobalConfig.ConfigFilename) == 0)) {
            if (StriCmp(TokenList[1], FileName) != 0) {
index 8b75288a8a7149d35a6cab6ce87b2147248404ee..6e903f35be23e3fd8d5ad3a2097e5802959228b8 100644 (file)
@@ -82,7 +82,7 @@ typedef struct {
 #define CONFIG_FILE_NAME         L"refind.conf"
 // Note: Below is combined with MOK_NAMES to make default
 #define DONT_SCAN_FILES L"shim.efi,shim-fedora.efi,shimx64.efi,PreLoader.efi,TextMode.efi,ebounce.efi,GraphicsConsole.efi,bootmgr.efi"
-#define DONT_SCAN_VOLUMES L"Recovery HD,LRS_ESP"
+#define DONT_SCAN_VOLUMES L"LRS_ESP"
 #define ALSO_SCAN_DIRS L"boot"
 
 EFI_STATUS ReadFile(IN EFI_FILE_HANDLE BaseDir, CHAR16 *FileName, REFIT_FILE *File, UINTN *size);
index 4397db831f526e5c2e7b766dd80ce2039afbd6c9..fc43038bb284d56d4bd2ed74e80f3d8795f5477c 100644 (file)
@@ -246,6 +246,7 @@ typedef struct {
    BOOLEAN     TextOnly;
    BOOLEAN     ScanAllLinux;
    BOOLEAN     DeepLegacyScan;
+   BOOLEAN     EnableAndLockVMX;
    UINTN       RequestedScreenWidth;
    UINTN       RequestedScreenHeight;
    UINTN       BannerBottomEdge;
index 1efadf6957f62d2d82b6ca2dc06471ab1a383d21..e83940bcea6c1a281f6f4426a393b6e2cc0984a9 100644 (file)
@@ -139,8 +139,8 @@ static REFIT_MENU_SCREEN MainMenu       = { L"Main Menu", NULL, 0, NULL, 0, NULL
                                             L"Insert or F2 for more options; Esc to refresh" };
 static REFIT_MENU_SCREEN AboutMenu      = { L"About", NULL, 0, NULL, 0, NULL, 0, NULL, L"Press Enter to return to main menu", L"" };
 
-REFIT_CONFIG GlobalConfig = { FALSE, TRUE, FALSE, 0, 0, 0, DONT_CHANGE_TEXT_MODE, 20, 0, 0, GRAPHICS_FOR_OSX, LEGACY_TYPE_MAC, 0, 0,
-                              { DEFAULT_BIG_ICON_SIZE / 4, DEFAULT_SMALL_ICON_SIZE, DEFAULT_BIG_ICON_SIZE }, BANNER_NOSCALE,
+REFIT_CONFIG GlobalConfig = { FALSE, TRUE, FALSE, FALSE, 0, 0, 0, DONT_CHANGE_TEXT_MODE, 20, 0, 0, GRAPHICS_FOR_OSX, LEGACY_TYPE_MAC,
+                              0, 0, { DEFAULT_BIG_ICON_SIZE / 4, DEFAULT_SMALL_ICON_SIZE, DEFAULT_BIG_ICON_SIZE }, BANNER_NOSCALE,
                               NULL, NULL, CONFIG_FILE_NAME, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                               { TAG_SHELL, TAG_MEMTEST, TAG_GDISK, TAG_APPLE_RECOVERY, TAG_WINDOWS_RECOVERY, TAG_MOK_TOOL,
                                 TAG_ABOUT, TAG_SHUTDOWN, TAG_REBOOT, TAG_FIRMWARE, 0, 0, 0, 0, 0, 0 }
@@ -169,7 +169,7 @@ static VOID AboutrEFInd(VOID)
 
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.8.3");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.8.3.2");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2014 Roderick W. Smith");
@@ -434,10 +434,33 @@ static VOID StoreLoaderName(IN CHAR16 *Name) {
 // EFI OS loader functions
 //
 
+// See http://www.thomas-krenn.com/en/wiki/Activating_the_Intel_VT_Virtualization_Feature
+// for information on Intel VMX features
+static VOID DoEnableAndLockVMX(VOID)
+{
+    UINT32 msr = 0x3a;
+    UINT32 low_bits = 0, high_bits = 0;
+
+    // is VMX active ?
+    __asm__ volatile ("rdmsr" : "=a" (low_bits), "=d" (high_bits) : "c" (msr));
+
+    // enable and lock vmx if not locked
+    if ((low_bits & 1) == 0) {
+        high_bits = 0;
+        low_bits = 0x05;
+        msr = 0x3a;
+        __asm__ volatile ("wrmsr" : : "c" (msr), "a" (low_bits), "d" (high_bits));
+    } 
+} // VOID DoEnableAndLockVMX
+
 static VOID StartLoader(LOADER_ENTRY *Entry, CHAR16 *SelectionName)
 {
     UINTN ErrorInStep = 0;
 
+    if (GlobalConfig.EnableAndLockVMX) {
+        DoEnableAndLockVMX();
+    }
+
     BeginExternalScreen(Entry->UseGraphicsMode, L"Booting OS");
     StoreLoaderName(SelectionName);
     StartEFIImage(Entry->DevicePath, Entry->LoadOptions, TYPE_EFI,