]> code.delx.au - refind/blobdiff - docs/refind/revisions.html
Documentation updates for 0.10.3 release.
[refind] / docs / refind / revisions.html
index ed3aebc082643d2892437202c1bc6957f33bb738..cb0d0bd4a0d2fc4b83534c4d20b6786854d36946 100644 (file)
@@ -8,15 +8,17 @@
   <link href="../Styles/styles.css" rel="stylesheet" type="text/css" />
 </head>
 
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
 <body>
 <h1>The rEFInd Boot Manager:<br />Revisions</h1>
 
 <p class="subhead">by Roderick W. Smith, <a
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
-<p>Last Web page update: 6/18/2013</p>
+<p>Last Web page update: 4/24/2016</p>
 
-<p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
+<p>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>
 
 <table border="1">
 <tr>
@@ -39,8 +41,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <input type="hidden" name="amount" value="1.00">
 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
-<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
-<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
+<input type="image" src="donate.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 </form>
 </td>
 
@@ -54,8 +55,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <input type="hidden" name="amount" value="2.50">
 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
-<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
-<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
+<input type="image" src="donate.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 </form>
 </td>
 
@@ -70,8 +70,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <input type="hidden" name="amount" value="5.00">
 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
-<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
-<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
+<input type="image" src="donate.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 </form>
 </td>
 
@@ -85,8 +84,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <input type="hidden" name="amount" value="10.00">
 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
-<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
-<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
+<input type="image" src="donate.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 </form>
 </td>
 
@@ -100,8 +98,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <input type="hidden" name="amount" value="20.00">
 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
-<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
-<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
+<input type="image" src="donate.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 </form>
 </td>
 
@@ -114,8 +111,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <input type="hidden" name="currency_code" value="USD">
 <input type="hidden" name="item_name" value="rEFInd Boot Manager">
 <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHostedGuest">
-<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
-<img alt="Donate with PayPal" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
+<input type="image" src="donate.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 </form>
 </td></tr>
 </table>
@@ -130,6 +126,208 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <ul>
 
+<li><b>0.10.3 (4/24/2016)</b>&mdash;This version features mostly modest changes and additions:
+
+  <ul>
+
+  <li>A new Linux script, <tt>refind-mkdefault</tt>, simplifies the task of resetting rEFInd as the default boot program. It's documented <a href="refind-mkdefault.html">here.</a> I've also written a new <a href="bootcoup.html">documentation page on the problem generally,</a> which covers how to handle the problem in multiple OSes.</li>
+
+  <li>I've modified the SIP/CSR rotation code so that the SIP/CSR rotation tool will appear more reliably on Apple computers.</li>
+
+  <li>The NTFS driver has been improved to reduce the chances of it hanging randomly.</li>
+
+  <li>The code that excludes shell binaries from appearing in the main boot list has been altered to reduce the odds of an incorrect exclusion from occurring.</li>
+
+  <li>rEFInd now recognizes the <tt>fwupx64.efi</tt> program as a special case: If detected, this program is presented as a second-row option rather than as a regular boot loader. (This tool is used to update firmware on some computers.)</li>
+
+  <li>BIOS/CSM/legacy-mode OSes all now include the string <tt>Legacy</tt> in their descriptions on Macs.</li>
+
+  </ul>
+
+</li>
+
+<li><b>0.10.2 (1/26/2016)</b>&mdash;Changes to this version are relatively modest and focus on bug fixes:
+
+  <ul>
+
+  <li>A bug in <tt>refind-install</tt> under OS X could cause the <tt>mountesp</tt> script to be installed as a <i>file</i> called <tt>/usr/local/bin</tt> if that directory was absent. This bug has been fixed.</li>
+
+  <li>Another OS X <tt>refind-install</tt> bug caused the <tt>--usedefault</tt> option to not work properly. This has been fixed.</li>
+
+  <li>A Linux <tt>refind-install</tt> bug caused Secure Boot detection to fail in some cases. This has also been fixed.</li>
+
+  <li>The <tt>mvrefind</tt> script could fail to move the Windows boot loader file (<tt>bootmgfw.efi</tt>) under some circumstances. Another bug in the same script caused <tt>mvrefind</tt> to register rEFInd using its default filename (<tt>rEFInd Boot Manager</tt>) rather than the name <tt>Windows Boot Manager</tt> when moving rEFInd to the Windows boot manager's location. Both of these bugs have been squashed.</li>
+
+  <li>A long-standing but obscure bug/quirk affects some EFIs, such as that in the HP ProBook 6470b: These EFIs connect useless drivers to partitions with no known filesystems, <i>before</i> rEFInd can load filesystem drivers. The result is that drivers loaded by rEFInd could not read the partitions in question. This version of rEFInd works around this problem.</li>
+
+  <li>A bug introduced in rEFInd 0.10.1 caused custom volume badge icons (read from an icon directory specified by <tt>icons_dir</tt> in <tt>refind.conf</tt>) to be ignored. I've fixed this bug.</li>
+
+  <li>Finally, a small non-bug improvement: I've added <tt>centos.crt</tt> and <tt>centos.cer</tt> public-key files for CentOS to the <tt>keys</tt> directory.</li>
+
+  </ul>
+
+</li>
+
+<li><b>0.10.1 (12/12/2015)</b>&mdash;This version of the program features one big change that will affect very few people, another big behind-the-scenes change, and a number of small changes that will affect more people:
+
+  <ul>
+
+  <li>rEFInd now compiles and runs on ARM64 (aka AARCH64 or AA64) systems. To date, I've tested it only using QEMU, so this support is <i>very</i> preliminary, almost to the point of being theoretical.</li>
+
+  <li>I've made significant changes to the <tt>Makefiles</tt> used to compile rEFInd. This should have no effect on the way rEFInd functions, or even in how most programming tasks are done; but the changes should help simplify some future changes.</li>
+
+  <li>I've made font changes: I've removed Luxi Sans Mono and changed the default font from Nimbus Mono to Liberation Mono.</li>
+
+  <li>A bug that causes rEFInd to fail to detect boot loaders on removable media when rEFInd itself was launched from the fallback filename is now history.</li>
+
+  <li>Fedora, Red Hat, and CentOS use a special recovery kernel with a name beginning <tt>vmlinuz-0-rescue</tt>. This kernel could be newer than others, which would make it the default on in a "folded" set of kernels&mdash;a highly undesirable situation. I've therefore modified rEFInd's loader-sorting algorithm to move this rescue kernel to the end of the list, no matter what its time stamp reads.</li>
+
+  <li>I've added a workaround to <tt>gptsync</tt> to fix problems that caused it to skip through its menus using the defaults without taking user input on some Macs. I've also added 53746F72-6167-11AA-AA11-00306543ECAC (Apple Core Storage, <tt>gdisk</tt> type AF05) to the list of partition types that <tt>gptsync</tt> recognizes.</li>
+
+  <li>The <tt>refind-install</tt> script can now be run as a symbolic link in Linux, which means it can be run as a normal command.</li>
+
+  <li>I've fixed bugs in <tt>refind-install</tt> and in <tt>mkrlconf</tt> that could cause them to misidentify kernel options. See <tt>NEWS.txt</tt> for details.</li>
+
+  <li>I've moved the detailed description of <tt>refind-install</tt> from <a href="installing.html">Installing rEFInd</a> to <a href="refind-install.html">a man page,</a> and I've created HTML versions of the three man pages that the project now includes.</li>
+
+  <li>I've added <tt>kernel*</tt> as a pattern for matching Linux kernels, since Gentoo Linux names its kernels by this pattern.</li>
+
+  <li>I've updated <a href="http://lodev.org/lodepng/">LodePNG,</a> which is the PNG graphics library that rEFInd uses, to version 20151024.</li>
+
+  <li>The rEFInd PPA now asks for confirmation before installing to the ESP when the package is first installed. Updates follow the instructions given on first installation. You can modify this setting by typing <tt class="userinput">dpkg-reconfigure refind</tt>.</li>
+
+  </ul>
+
+</li>
+
+<li><b>0.10.0 (11/8/2015)</b>&mdash;I've given this version an extra-large version number bump because of some highly user-visible changes, especially for Mac users. Changes include:
+
+  <ul>
+
+  <li>I've swapped out the old icons for new ones. I've replaced the old
+      icons because the OS icons were becoming a hopeless mish-mash of
+      styles and because I wanted to consolidate the icon collection to use
+      a more limited set of original sources for record-keeping purposes.
+      If you prefer the old icons, you can continue to use them. After
+      upgrading, rename <tt>icons-backup</tt> to something else (say,
+      <tt>icons-classic</tt>) and add a line to <tt>refind.conf</tt> to
+      reference the new directory, as in <tt>icons_dir
+      icons-classic</tt>.</li>
+
+  <li>A new feature, <tt>spoof_osx_version</tt>, causes rEFInd to tell a
+      Mac that it's about to launch OS X. This alters how some Macs
+      initialize hardware, which can make secondary video chipsets work on
+      some Macs. See the comments in <tt>refind.conf-sample</tt> or on the
+      <a href="using.html">Using rEFInd</a> page for details. This feature
+      has no effect on UEFI-based PCs.</li>
+
+  <li>Another new feature enables you to adjust a Mac's System Integrity
+      Protection (SIP) settings from within rEFInd. To use this feature,
+      you must adjust two lines in <tt>refind.conf</tt>: The new
+      <tt>csr_values</tt> line sets hexadecimal values through which you
+      can rotate using a new second-row tag that's activated by the new
+      <tt>scanfor</tt> line option of <tt>csr_rotate</tt>. Thus, you must
+      add or change both the <tt>scanfor</tt> and <tt>csr_values</tt>
+      lines. See the new <a href="sip.html">rEFInd and System Integrity
+      Protection</a> page for information on how to use this new feature.
+      Although this feature can work on UEFI-based PCs if they contain the
+      necessary NVRAM variable, such systems are unlikely to have this
+      variable, and it's unlikely to be useful even if it's present.</li>
+
+  <li>If the SIP NVRAM variable is set, rEFInd now displays its current
+      value in the About screen.</li>
+
+  <li>I've renamed several support scripts: <tt>install.sh</tt> to
+      <tt>refind-install</tt>, <tt>mvrefind.sh</tt> to <tt>mvrefind</tt>,
+      and <tt>mkrlconf.sh</tt> to <tt>mkrlconf</tt>. I've also added man
+      pages for <tt>mvrefind</tt> and <tt>mkrlconf</tt>.</li>
+
+  <li>Under OS X, <tt>refind-install</tt> now checks the machine's SIP
+      status and warns the user if it's active. To help with such
+      installations, the script can also now be run from a boot of the
+      Recovery HD.</li>
+
+  <li>Under Linux, <tt>refind-install</tt> and <tt>mkrlconf</tt> now use
+      <tt>/proc/cmdline</tt> as a source for the default boot options for
+      Linux kernels, rather than trying to extract them from GRUB
+      configuration files&mdash;<i>except</i> when the <tt>--root</tt>
+      option is used, in which case the script continues to use the GRUB
+      configuration files as a source of boot options. This change should
+      help rEFInd pick up exotic boot options that GRUB computes at boot
+      time, such as Btrfs subvolume options.</li>
+
+  <li>I've added a new script, called <tt>mountesp</tt>, which mounts the
+      ESP on Macs, using the same algorithm used by
+      <tt>refind-install</tt>. This should help Mac users who want to edit
+      their rEFInd configurations.</li>
+
+  <li>I've changed the default <tt>also_scan_dirs</tt> setting from
+      <tt>boot</tt> to <tt>boot,@/boot</tt>. This change helps rEFInd pick
+      up kernels from Btrfs volumes.</li>
+
+  <li>I've changed from <tt>.zip</tt> to a tarball (<tt>.tar.gz</tt>) as
+      the file format for the source code package. This change simply
+      reflects the fact that Linux is the only supported build environment
+      for rEFInd, and tarballs are more in line with that platform than are
+      <tt>.zip</tt> files. The primary binary file format remains a
+      <tt>.zip</tt> file, with Debian packages and RPMs also
+      available.</li>
+
+  <li>My 32-bit Mac Mini suffered from a bug that caused rEFInd's
+      icon-resizing code to hang in a conversion from floating-point to
+      integer values. I've therefore adjusted the icon-resizing code to
+      avoid doing floating-point computations. This change has a drawback,
+      though: It causes some images to acquire artifacts when resized,
+      particularly on 32-bit systems. If you run into such a problem, you
+      should scale your icon(s) or banner/background image so that it does
+      not need to be resized. Sorry, but between a system crash and minor
+      graphics artifacts, the graphics artifacts are the lesser of two
+      evils.</li>
+
+  </ul></li>
+
+<li><b>0.9.2 (9/19/2015)</b>&mdash;Soon after releasing 0.9.1, I started receiving bug reports about problems with it and Shim 0.8. (See <a href="https://sourceforge.net/p/refind/discussion/general/thread/2c248b11/?limit=25#1324">this thread</a> for one such report.) It turns out that the problem was not a new bug in rEFInd, but rather a change from Shim 0.7 to Shim 0.8 that made it next to useless with rEFInd. Specifically, Shim 0.8 now de-registers itself from the EFI after a follow-on program launches another one. This is done to avoid problems in a boot path in which Shim launches <tt>fallback.efi</tt>, which in turn launches <i>another</i> Shim. This creates a new problem, though: rEFInd can validate just one binary before it's "cut off" from Shim. Since rEFInd's drivers are binaries, if you use a single driver, that means that you won't be able to launch anything that requires validation via Shim. I quickly discovered a workaround, which I've implemented in this release. I consider this a "band-aid" patch, though, because it relies on a quirk of Shim's logic to bypass its de-registration. As such, the workaround in this release may break with a future Shim. A true fix will take longer to develop. I want to release this workaround version to head off further problems in the near term, though. This version also introduces a new feature, which is also Shim-related: Since version 0.7, Shim has supported launching binaries other than <tt>grubx64.efi</tt> by passing them on the command line. (Actually, Shim 0.4 supported this, but it required a broken path specification.) I've added support for this feature to <tt>install.sh</tt>: Adding the <tt>--keepname</tt> option to install.sh causes the script to preserve rEFInd's regular filename and to register the approprirate follow-on parameters to have Shim launch rEFInd by that name. This works, but is likely to be more delicate than using the default Shim follow-on name of <tt>grubx64.efi</tt>. The advantage, of course, is that rEFInd needn't "lie" about its name, which makes for less confusion in filenames. For the moment, the RPM and Debian packages I build do <i>not</i> use this new naming feature, since I can't be sure what version of Shim might be picked up. These changes do not affect users who do not use Secure Boot.</li>
+
+<li><b>0.9.1 (9/13/2015)</b>&mdash;This version has improved the Discoverable Partitions Specification (DPS) support in a number of ways that should make it more reliable when <tt>/etc/fstab</tt> omits references to the root (<tt>/</tt>) partition or when the GPT read-only or do-not-automount options are used to control these features. A stray DPS-related debugging print command has also been removed. I've improved rEFInd's ability to guess the Linux distribution by having it examine <tt>/etc/lsb-release</tt> as well as <tt>/etc/os_release</tt>, and I've added an icon for Elementary OS. Finally, I've made improvements to rEFInd's handling of case-insensitive string comparisons, which were buggy on some EFIs, particularly when rEFInd was compiled with GNU-EFI. rEFInd is still at the mercy of the EFI and support libraries, but many problem cases should now be resolved.</li>
+
+<li><b>0.9.0 (7/26/2015</b>&mdash;This version gets a bump up to 0.9.0 mainly because of a highly user-visible new feature: <i>kernel folding.</i> With kernel folding active, multiple Linux kernels in a single directory appear as just one main-menu entry, which launches the most recent kernel (by file timestamp) by default. Older kernels appear on the first one's submenu (accessed by hitting F2 or Insert). You can disable this new feature by setting <tt>fold_linux_kernels false</tt> in <tt>refind.conf</tt>. Another new feature is support for the <a href="http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/">Discoverable Partitions Spec,</a> which enables rEFInd to locate the Linux root (<tt>/</tt>) partition without a <tt>refind_linux.conf</tt> or <tt>/etc/fstab</tt> entry. I know of no distribution that automatically sets up its partitions in this way, but if and when this starts to happen, rEFInd will be ready. Other changes are relatively minor: The Debian <tt>postinst</tt> script now calls <tt>install.sh</tt> with <tt>--localkeys</tt> if <tt>sbsign</tt> and <tt>openssl</tt> are available, which helps if using the Ubuntu PPA on a system with custom Secure Boot keys; I've fixed a packaging bug that prevented IA32 versions of filesystem drivers and <tt>gptsync</tt> to not be built in the PPA; <tt>mkrlconf.sh</tt> now refuses to run under OS X; rEFInd now skips checking for BIOS-mode boot code on UEFI-based PCs, which should speed it up a little; I've fixed a bug that caused rEFInd to crash if it found an existing but empty <tt>refind_linux.conf</tt> file; I've made minor code changes to enable rEFInd to build under GCC 5.1; and I've added a new icon for Kali Linux (provided by Francesco D'Eugenio).</li>
+
+<li><b>0.8.7 (3/1/2015)</b>&mdash;This release provides bug fixes and refinements to existing features. Several changes should reduce the odds of rEFInd crashing because of assorted problems. Other changes improve Secure Boot handling, including improved Secure Boot detection in <tt>install.sh</tt>, recognition of <tt>KeyTool.efi</tt> and <tt>KeyTool-signed.efi</tt> as MOK manager utilities, and reporting of Secure Boot status for <i>x</i>86 (IA-32) systems in the rEFInd information screen. Filesystem detection is improved (again), and XFS has been added as a known filesystem. Detection of FreeBSD's BIOS-mode boot loader is improved, which should give more Mac users the right OS icon when booting FreeBSD in BIOS mode. A bug in <tt>install.sh</tt> that caused inappropriate installation to the filename <tt>bootx64.efi</tt> or <tt>bootia32.efi</tt>, and failure to update the computer's boot list, has been squashed. Finally, I'm <i><b>deprecating</b></i> the use of <tt>fs<tt class="variable">x</tt>:</tt> notation for referring to filesystems. The numbering of filesystems is simply unreliable, and better alternatives (the use of partition GUIDs, partition names, and filesystem names) have been added in previous releases. The <tt>fs<tt class="variable">x</tt>:</tt> code remains in rEFInd, and if it's working for you, you can continue to use it; but sooner or later I'll remove that code, so you're advised to change your manual boot stanzas and other options that use it before that happens.</li>
+
+<li><b>0.8.6 (2/8/2015)</b>&mdash;Most (but not all) of this release's changes focus on Windows dual-booting and Mac-specific issues. There's a new Windows 8 icon, which is now used by default as the Windows icon, although the old icon remains available and is used for Windows XP and earlier boots on Macs. If the NTFS driver is loaded, rEFInd will now exclude non-bootable NTFS volumes from the Mac boot list (this change does not affect UEFI-based PCs). A bug that caused misidentification of whole disks and NTFS volumes as being FAT has been fixed (again, this problem affected Macs, not PCs). A couple of Mac-specific <tt>install.sh</tt> bugs have been fixed, resulting in more reliable identification of the ESP and of the installation directory. Previous versions ignored a volume name of "HFS+ volume" because that name was produced by earlier versions of the rEFInd HFS+ driver for all HFS+ volumes; but the current HFS+ driver produces a real volume name, so I've removed that special case from the code. I've removed the r472 rEFIt commit, introduced in 0.8.5, because it was causing some BMP files to fail to load. Finally, the <tt>hideui</tt> token in <tt>refind.conf</tt> now accepts a value of <tt>badges</tt>, which has the effect of hiding the disk-type badges associated with OS launch icons.</li>
+
+<li><b>0.8.5 (2/1/2015)</b>&mdash;The biggest single change with this version is a new NTFS driver contributed by Samuel Liao, who also contributed the Btrfs driver. Samuel also contributed some miscellaneous driver fixes and a change to the way the keyboard is handled, which improves responsiveness on some systems. This version also improves the way <tt>install.sh</tt> works under OS X. In particular, it tweaks the <tt>bless</tt> command in a way that may eliminate startup delays and it does a better job of detecting and replacing existing rEFInd installations (on the ESP), rather than blindly writing to <tt>EFI/BOOT</tt>. Finally, this version applies <a href="https://sourceforge.net/p/refit/code/commit_browser">commits from late in rEFIt's history:</a> r467, which improves handling of BIOS/legacy boots from the second and subsequent disks on Macs; and r472, which enables handling BMP images that are not vertically flipped. These commits were not present in rEFInd from the start because the starting point for rEFInd was a Debian source package taken from a slightly earlier version.</li>
+
+<li><b>0.8.4 (12/8/2014)</b>&mdash;OS X 10.10 ("Yosemite") made changes that necessitated alterations to both rEFInd's <tt>install.sh</tt> script and rEFInd defaults. Specifically, Yosemite now uses a form of <a href="http://en.wikipedia.org/wiki/Logical_volume_management">logical volume management (LVM)</a> 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 <tt>dont_scan_volumes</tt> are necessary to make the new location for the OS X boot loader show up. Another big change is in the new (but <i>experimental</i>) support for network booting, with the help of iPXE. See the <tt>BUILDING.txt</tt> file in the source package for details on how to build and install the necessary files. A new option for <tt>refind.conf</tt>, <tt>enable_and_lock_vmx</tt>, 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. (<i>Do not</i> 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 <tt>dont_scan_files</tt> 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.</li>
+
+<li><b>0.8.3 (7/6/2014)</b>&mdash;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 <tt>timeout = -1</tt> in <tt>refind.conf</tt> to have rEFInd boot the default OS immediately <i>unless</i> 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 <tt>scan_all_linux_kernels</tt> is now <tt>true</tt>. 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 <i>shouldn't</i> affect the operation of the drivers, but there's a slim chance that it will.</li>
+
+<li><b>0.8.2 (6/8/2014)</b>&mdash;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 <tt>deep_uefi_legacy_scan</tt> token is present in <tt>refind.conf</tt>. 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 <tt>default_selection</tt> token, and in fact if you provide a list that begins with <tt>+</tt>, 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 <tt>Make.tiano</tt>.</li>
+
+<li><b>0.8.1 (5/15/2014)</b>&mdash;The biggest code change in this version is that rEFInd's UEFI-style BIOS-mode boot code now works when rEFInd is built with GNU-EFI as well as when built with Tianocore. This change won't affect users of my binary builds, which have long been made with Tianocore, but if your distribution builds rEFInd with GNU-EFI, it might interest you. Some user-noticeable bug fixes include a fix to a bug that could cause rEFInd to omit boot loaders on a partition's root directory, a fix to a bug that caused <tt>.VolumeIcon.icns</tt> to take a higher-than-intended precedence on OS X boot volumes, a fix to a bug that could cause a BIOS-mode boot from the wrong device in UEFI mode, and improved centering of BIOS-mode boot descriptions on the screen. Other changes include two new optional bitmap fonts (Ubuntu Mono and Nimbus Mono), omission of messages about scanning of boot loaders when <tt>scan_delay</tt> is set to <tt>1</tt>, a change to the search order for icons (PNG files now override ICNS files), and a conversion of all the icons in the icons directory from ICNS to PNG format. Note that this last change may necessitate changing manual boot stanzas if you refer to icons in the default icon directory, depending on how you upgrade rEFInd.</li>
+
+<li><b>0.8.0 (5/4/2014)</b>&mdash;The biggest changes with this version relate to BIOS/CSM/legacy support, particularly on UEFI-based PCs. This version can now boot from the second (or later) hard disk on such computers, and is more likely to be able to cope with removable disks. On both Macs and PCs, you can also now use <tt>dont_scan_volumes</tt> to remove a legacy-boot option from the boot list, so long as it has a unique name (as shown in rEFInd's main menu when you highlight the option). This version also introduces the ability to use partition names and partition GUIDs to refer to devices (in <tt>dont_scan_volumes</tt>, displayed in the rEFInd menu, and so on). Note that partition names are stored in GPT data structures. These are different from filesystem names, which are stored in filesystem data structures. rEFInd now limits the length of the firmware identity string shown in the "About" screen, to prevent problems with the string overrunning the space available on an 800x600 display. Finally, I've fixed a memory-allocation bug that caused error message displays on some systems when re-scanning boot loaders. This bug might conceivably have caused some systems to hang when re-scanning, too.</li>
+
+<li><b>0.7.9 (4/20/2014)</b>&mdash;This version includes a number of bug fixes: <tt>install.sh</tt> no longer displays error messages if the <tt>dmraid</tt> utility isn't available; the HFS+ driver now reports a correct volume name; filesystem driver bugs that could cause lockups have been fixed; a redundant "utility" in the MOK utility's description has been removed; and an (as-yet untested) attempt to fix a continuous-rescanning problem after ejecting a disc on some computers has been implemented. In addition, rEFInd now removes redundant kernel entries on Ubuntu systems to keep the menu uncluttered and a new <tt>gdisk</tt> option has been added to the <tt>showtools</tt> item. (An EFI version of my <a href="http://www.rodsbooks.com/gdisk/"><tt>gdisk</tt></a> utility can be built with the help of the <a href="https://sourceforge.net/projects/uefigptfdisk/?source=directory">UEFI GPT fdisk</a> library.)</li>
+
+<li><b>0.7.8 (3/9/2014</b>&mdash;This version emphasizes changes to icon and banner graphics handling. Internally, rEFInd can now scale graphics, which previous versions could not do. To make use of this feature, three new <tt>refind.conf</tt> tokens now exist: <tt>big_icon_size</tt> and <tt>small_icon_size</tt> set the sizes of big (first-row OS) and small (second-row tool) icons; and <tt>banner_scale</tt> tells rEFInd to draw banners to a 1:1 scale (<tt>noscale</tt>, the default) or to scale the banner to fill the screen (<tt>fillscreen</tt>). See <a href="configfile.html#table1">Table 1 on the configuration page of this document</a> for more on these new options. I've also adjusted the post-installation script used by the RPM and Debian packages to search for existing Shim programs called <tt>shimx64.efi</tt>, not just <tt>shim.efi</tt> (as had been done before). This should help when installing a package on distributions that use the <tt>shimx64.efi</tt> filename, such as Ubuntu. Finally, I'm providing a preliminary set of Debian packaging files, which may help distribution maintainers to adopt rEFInd.</li>
+
+<li><b>0.7.7 (1/3/2014)</b>&mdash;A new configuration file token, <tt>windows_recovery_files</tt>, leads this list of changes; you can use it to specify files that boot Windows recovery tools. If you include the <tt>windows_recovery</tt> option on the <tt>showtools</tt> line, these files will then be represented by a small Windows recovery badge on the second row rather than as a full-sized OS loader, thus reducing clutter and making the purpose of this loader clearer. You can also now specify a complete path to <tt>dont_scan_files</tt> items, including a volume specifier. The <tt>use_graphics_for</tt>, <tt>also_scan_dirs</tt>, <tt>dont_scan_dirs</tt>, <tt>dont_scan_files</tt>, <tt>scan_driver_dirs</tt>, and <tt>windows_recovery_files</tt> tokens can all now accept <tt>+</tt> as their first option, which causes subsequent list items to be added to their defaults rather than replacing them. The configuration file can now be specified at program launch by passing a <tt>-c</tt> option, as in <tt>-c myconf.conf</tt>; you can use this feature to set up a manual boot stanza that launches rEFInd with modified boot options. Scans of ext2/3/4fs and ReiserFS partitions now omit partitions with filesystem UUIDs that have already been seen. This is an effort to reduce clutter from such partitions that are components of RAID 1 arrays. The <tt>install.sh</tt> script now attempts to locate and mount an unmounted ESP when run under Linux. Finally, I've fixed a bug in both <tt>install.sh</tt> and <tt>mkrlconf.sh</tt> that caused the generated <tt>refind_linux.conf</tt> file to contain a stray line break and unnecessary <tt>PARTUUID=</tt> specification on some systems.</li>
+
+<li><b>0.7.6 (12/15/2013)</b>&mdash;The biggest changes in this version relate to the <tt>default_selection</tt> setting. You can now provide multiple default selections by listing them <i>within quotes</i> and separated by commas, as in <tt>default_selection "ubuntu,fedora"</tt> which boots <tt>ubuntu</tt> if it's present and <tt>fedora</tt> if <tt>ubuntu</tt> is not present but <tt>fedora</tt> is. This should be helpful with removable disks. You can also include two times, in 24-hour format, following a <tt>default_selection</tt> specification, as in <tt>default_selection Maintenance 1:00 2:00</tt>, which boots <tt>Maintenance</tt> by default between 1:00 and 2:00. If another <tt>default_selection</tt> without a time specification preceded this line, the earlier one will still apply at other times. Another change to the main program is that you can now set <tt>screensaver -1</tt> to have rEFInd come up with its screen blanked. You'll probably want to combine this with a short <tt>timeout</tt> value to have rEFInd boot your default OS quickly unless you press a key first. Finally, I've added a new option to the <tt>install.sh</tt> script: <tt>--ownhfs <i>target_partition</i></tt>. This option is valid only under OS X. It installs rEFInd to an HFS+ volume that does <i><b>not</b></i> currently hold an OS X installation. The installation method differs from the usual rEFInd installation in that the result looks to the firmware more like an OS X installation. This makes rEFInd appear as an option in the firmware's own boot manager and it may help suspend-to-RAM operations.</li>
+
+<li><b>0.7.5 (11/10/2013)</b>&mdash;This version fixes a few bugs, the most important of which is one that caused some Macs to hang when multiple EFI drivers were present. Another squashed bug caused the screen to clear to the default gray rather than the actual background color when launching OSes in graphics mode. rEFInd no longer shows all exFAT partitions as being bootable on Macs when legacy boot options are enabled; now such partitions only show up as bootable if rEFInd spots a known boot loader installed on them. Finally, I've fixed a bug that caused <tt>install.sh</tt> to fail when installing to the ESP with recent versions of OS X.</li>
+
+<li><b>0.7.4 (8/25/2013)</b>&mdash;This version fixes problems in booting VMware's <tt>mboot64.efi</tt> boot loader and when launching boot loaders from some types of Mac drives. These fixes might improve matters for other boot loaders, too. I've also added a space to the end of the <tt>Boot <i>X</i> from <i>Y</i></tt> description, which means you can use <tt><i>Y</i></tt> in the <tt>default_selection</tt> field even if another entry contains the same <tt><i>Y</i></tt> string, but with something added. To do this, you must enclose <tt><i>Y</i></tt> in quotes and add a space to its end, as in <tt>default_selection "Bit "</tt>, which sets the first boot loader on the <tt>Bit</tt> volume as the default, even if you also have a disk called <tt>Bitten</tt>. Finally, this version adds explicit support for the new EFI version of <a href="http://www.memtest86.com/download.htm">Memtest86.</a> See the <a href="installing.html#addons">"Installing Additional Components"</a> section of the <a href="installing.html">Installing rEFInd</a> page for details on this support.</li>
+
+<li><b>0.7.3 (8/7/2013)</b>&mdash;This version fixes a bug that caused boot failures when launching BIOS-mode OSes on Macs. It also fixes a bug that caused such OSes' disk-type icons to disappear.</li>
+
+<li><b>0.7.2 (8/6/2013)</b>&mdash;This version primarily fixes a number of minor bugs: A display glitch when the second row of icons is empty; improper scanning when a volume specification was used in <tt>also_scan_dirs</tt>; improper reading of volume badges from user-specific icons directory or from <tt>.VolumeBadge.icns</tt> files. Also, This version adds protection against loading invalid files as drivers, which can crash some EFIs, adds an icon for Funtoo Linux, and adds <tt>PreLoader.efi</tt> and <tt>shim-fedora.efi</tt> to the default <tt>dont_scan_files</tt> list.</li>
+
+<li><b>0.7.1 (7/8/2013)</b>&mdash;The most important improvement to this version is a bug fix to the filesystem drivers. In version 0.7.0, drivers could hang the system (the Btrfs driver in particular generated problem reports, although the bug could theoretically affect any driver). Version 0.7.1 fixes this problem. I've also fixed a build problem with development versions of the TianoCore EDK2. In rEFInd proper, I've added a scan for <tt>EFI/Microsoft/Boot/bkpbootmgfw.efi</tt>, which is how recent versions of Ubuntu's Boot Repair utility rename the Windows boot loader. This change enables rEFInd to launch Windows even on systems that have been "repaired" by this overzealous tool. I've also fixed a bug that caused volume specifications in <tt>also_scan_dirs</tt> tokens to be ignored.</li>
+
+<li><b>0.7.0 (6/27/2013)</b>&mdash;Improvements to the filesystem drivers dominate this version. The biggest change is a new Btrfs driver, created by Samuel Liao and based in part on the GRUB 2.0 Btrfs support. The drivers also now include a read cache to improve their speed. This has only a tiny effect on most computers, but on some it can speed boot times by a few seconds, and under VirtualBox the effect is dramatic&mdash;the ext2fs driver goes from a sluggish three <i>minutes</i> to load a kernel and initrd to three <i>seconds</i>. I've also changed some critical filesystem driver pointers from 32-bit to 64-bit, which may enable some of them to work with larger filesystems, although this isn't yet tested. The main rEFInd binary sports only two changes: It can now identify Btrfs volumes as such for labelling purposes and it can now filter out invalid loaders (those for the wrong architecture or Linux kernels that lack EFI stub loader support, for instance).</li>
+
 <li><b>0.6.12 (6/18/2013)</b>&mdash;This version changes relatively little code, but it adds one feature that will simplify rEFInd installation for some users: The program can now deduce minimal Linux boot options based on an <tt>/etc/fstab</tt> file <i>if</i> that file is on the same partition as the kernel (in other words, if you do <i>not</i> use a separate <tt>/boot</tt> partition). Put another way, <tt>refind_linux.conf</tt> is no longer required for some installations, although it's still desirable. If you're already using rEFInd, this isn't likely to be important, but it can help when you're just starting out. In addition, this version adds support for the Linux Foundation's PreBootloader in the <tt>install.sh</tt> script. I've also changed the default 64-bit shell included on the CD-R and USB flash drive images to a modified version 2 shell, so as to enable use of the <tt>bcfg</tt> command to help install rEFInd (or make other changes to the firmware's boot manager configuration).</li>
 
 <li><b>0.6.11 (5/13/2013)</b>&mdash;Two new features may have a noticeable affect for many users: First, rEFInd now ignores symbolic links on filesystems that support them. I've implemented this change because I've been receiving too many reports from users who want to remove redundant or non-functional Linux boot entries caused by symbolic links created by distributions. Although this is possible by editing the <tt>dont_scan_dirs</tt> or <tt>dont_scan_files</tt> options in <tt>refind.conf</tt>, telling users how to do this has become tedious. If you <i>want</i> to use links to create multiple entries for one kernel or boot loader, use hard links instead of symbolic links. The second major user-visible change is that rEFInd now tries to guess the distribution type based on the naming of the kernel file (effective only for Fedora and RHEL) or the contents of the <tt>/etc/os-release</tt> file (effective only if the installation does <i>not</i> have a separate </tt>/boot</tt> partition or if <tt>/etc/os-release</tt> is copied to that location on the partition that holds the kernel). There are several other minor cosmetic issues that some users may notice, including icons for Lubuntu and Kubuntu and a change in the name of the "Reboot to Firmware User Interface" option to "Reboot to Computer Setup Utility." I've also fixed a bug in <tt>gptsync</tt> that could cause it to hang if the disk had too few GPT partitions. Finally, I've improved the <tt>install.sh</tt> script so that it works better from a path with directory names that include spaces.</li>
@@ -210,7 +408,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <hr />
 
-<p>copyright &copy; 2012&ndash;2013 by Roderick W. Smith</p>
+<p>copyright &copy; 2012&ndash;2016 by Roderick W. Smith</p>
 
 <p>This document is licensed under the terms of the <a href="FDL-1.3.txt">GNU Free Documentation License (FDL), version 1.3.</a></p>