]> code.delx.au - refind/blobdiff - NEWS.txt
Fix for refind-install script to handle a wider range of disk devices,
[refind] / NEWS.txt
index f596f8ff702b76f2c113a66a86968d480bd0c9d2..219353aea2aa16e66c7e64e8bfa97bb492a190ca 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,3 +1,460 @@
+0.10.4 (?/??/2016):
+-------------------
+
+- Tweaked refind-install to do a better job of detecting disks other
+  than /dev/sd? and /dev/hd? devices.
+
+0.10.3 (4/24/2016):
+-------------------
+
+- Altered RPM & Debian installation scripts so as to NOT call sbsign if
+  Secure Boot is disabled. This is a response to Ubuntu bug #1574372
+  (https://bugs.launchpad.net/ubuntu/+source/sbsigntool/+bug/1574372): In
+  Ubuntu 16.04, the sbsign program is segfaulting randomly, which prevents
+  proper installation of the program. This change at least permits proper
+  installation IF Secure Boot is disabled.
+
+- Changed description of BIOS/CSM/legacy OS loaders on Macs to include the
+  string "(Legacy)", so as to more easily identify BIOS/CSM/legacy-mode OSes
+  in the rEFInd main menu.
+
+- Added recognition of the fwupx64.efi file as a firmware update tool.
+  This filename is excluded from the first-row launchers, and is instead
+  presented on the second row, controlled by the "fwupdate" item on the
+  "showtools" option line. It's enabled by default. Note that it's still a
+  bit unclear to me how this tool is supposed to be used. rEFInd launches it
+  with no options, but if it should take options, this will have to be
+  changed in the future.
+
+- Tightened exclusion of shell binary filenames from boot loader scan.
+  Previously, any filename containing the substring "shell" was excluded
+  from scans. Now it's tighter; only files matching one of the filenames in
+  the constant SHELL_NAMES in main.c are excluded. This change will enable
+  programs with names that include "shell", but that aren't in rEFInd's
+  SHELL_NAMES list, such as "shelly.efi", to be shown in the rEFInd main
+  menu.
+
+- Fixed bug in NTFS driver that caused it to hang (and thus hang the
+  computer) in some situations, particularly when a file on an NTFS volume
+  had many fragments and when the computer's CSM was activated. (Fix
+  courtesy of "S L.")
+
+- Modified SIP/CSR rotation code: If the csr-active-config EFI variable is
+  missing AND the firmware is Apple (as identified by the string "Apple"
+  being present in the ST->FirmwareVendor string), rEFInd treats the
+  computer as one on which SIP is available and set to the "enabled" state
+  (0x10). The upshot is that the SIP/CSR tool will appear if the showtools
+  and csr_values options are set appropriately in refind.conf, even if the
+  csr-active-config variable is missing from the NVRAM. The point of this
+  change is that I've received reports of some Macs that run OS X 10.11 but
+  that lack this variable. OS X acts as if SIP were enabled, but rEFInd is
+  then unable to disable SIP. This change gives rEFInd the ability to
+  disable SIP on such systems. The drawback is that the variable might be
+  set on some systems that don't run OS X 10.11. This should be harmless
+  from a technical point of view, but the presence of SIP indicators in
+  rEFInd could be confusing.
+
+- Added refind-mkdefault script to simplify resetting rEFInd as the default
+  boot program in Linux. The intent is to run this after GRUB, Windows, OS
+  X, or some other tool takes over as the primary boot manager. It can be
+  called from a startup script to handle this task automatically.
+
+0.10.2 (1/26/2016):
+-------------------
+
+- Fixed bug in refind-install that caused mountesp to be installed as a FILE
+  called /usr/local/bin on OS X if the /usr/local/bin directory did not
+  already exist.
+
+- Fixed bug in mvrefind that caused it to fail to move bootmgfw.efi in
+  some situations, and another that caused it to give the resulting NVRAM
+  entry the default rEFInd name of "rEFInd Boot Manager," rather than the
+  intended "Windows Boot Manager" (to work around bugs in some EFIs).
+
+- Worked around bug/quirk in some EFIs (in HP ProBook 6470b laptop, at
+  least) that prevented EFI filesystem drivers from working. (Drivers would
+  load but not provide access to filesystems.)
+
+- Fixed refind-install bug that caused --usedefault option to not work in OS
+  X. (This bug did not affect Linux.)
+
+- Improved Secure Boot detection in refind-install in Linux.
+
+- Fixed bug that caused custom volume badges (vol_*.png) to be read only
+  from default location ("icons" subdirectory), effectively eliminating the
+  ability to adjust them.
+
+- Added centos.crt and centos.cer public key files.
+
+0.10.1 (12/12/2015):
+--------------------
+
+- Change to PPA version: Installing the PPA now queries the user about
+  whether to install to the ESP. Upgrades will remember the initial
+  selection.
+
+- Modified time-based sorting of loaders in a single directory to push
+  anything starting with "vmlinuz-0-rescue" to the end of the list. Fedora
+  gives its rescue kernels filenames that begin with that string, and if
+  such a kernel happens to be the most recent, treating it normally will
+  cause it to become the default when kernel folding is in use. This is
+  almost certainly undesirable, so this change keeps the rescue kernel at
+  the end of the list instead, which is saner.
+
+- Significantly reworked the project's Makefiles. This should have no
+  impact on ordinary users, and even most developers should barely notice
+  it; but it should make future extensions to additional platforms or
+  building in different environments easier.
+
+- Added workaround to gptsync for issue with some Macs' EFIs that caused
+  the program to skip through all prompts, thus accepting the default
+  option. This would normally cause gptsync to do nothing.
+
+- Added type code 53746F72-6167-11AA-AA11-00306543ECAC (Apple Core Storage,
+  gdisk type AF05) to list of partition types recognized by gptsync.
+
+- Removed Luxi Sans Mono font, since I discovered it was not open source;
+  and changed the default font from Nimbus Mono to Liberation Mono.
+
+- Added support for compiling rEFInd for ARM64 (aka AARCH64 or aa64). This
+  works with both GNU-EFI and Tianocore UDK2014.SP1.P1. This support is
+  currently poorly tested. In particular, I used QEMU on an x86-64 computer
+  to create a virtualized ARM64 environment; I've not yet tested on a real
+  computer. I couldn't get QEMU to create a video card, so I used a serial
+  terminal, which means that the graphics features are untested -- I ran
+  rEFInd with "textonly" uncommented in refind.conf. I've tested the ext4fs
+  driver but no other drivers, although they all compile. (So does gptsync,
+  although it's unlikely to be useful on ARM64.) Some rEFInd features are
+  meaningless on ARM64, such as BIOS-mode boot support, anything geared
+  toward Macs (csr_values/csr_rotate, spoof_osx_version, etc.), and
+  enable_and_lock_vmx.
+
+- Fixed bug that caused rEFInd to fail to scan EFI boot loaders on
+  removable media when rEFInd itself was launched from the fallback
+  filename.
+
+- Moved detailed descriptions of refind-install from installing.html to
+  a refind-install man page. To keep this information Web-accessible, I've
+  also created HTML versions of the three man pages and linked them into
+  the HTML documentation.
+
+- Updated LodePNG to latest version (20151024).
+
+- Fixed bugs in mkrlconf and in refind-install that could cause some kernel
+  options to be excluded from refind_linux.conf. There were two trouble
+  conditions:
+  - Previously, these scripts assumed that the first option in
+    /proc/cmdline was the kernel's filename, but this isn't always the
+    case. (In particular, when gummiboot launches the kernel, this is not
+    true. It might be an incorrect assumption in some other cases, too.)
+    The fix involves checking for likely signs of a kernel filename before
+    discarding this first option.
+  - These scripts cut the "initrd=*" option from /proc/cmdline, but the
+    call to "sed" was overzealous and cut until the end of input. This
+    usually worked, since the initrd= option was usually last on the line;
+    but if it wasn't, any options following initrd= would be lost.
+
+- Added "kernel*" as a matching pattern for Linux kernels, since this is
+  what Gentoo uses by default.
+
+- The refind-install script can now be run as a symbolic link in Linux.
+  This enables creating a /usr/sbin/refind-install link in Linux packages,
+  with the binaries stashed wherever the package system likes them. This
+  feature does NOT work in OS X, but there's relatively little need for it
+  there.
+
+0.10.0 (11/8/2015):
+-------------------
+
+- Fixed bug that caused refind-install to not unmount the ESP when it
+  should under OS X.
+
+- Modified refind-install and mkrlconf scripts to use /proc/cmdline as
+  source for default boot options EXCEPT when refind-install receives the
+  --root option. In that case, refind-install continues to use
+  /etc/default/grub as the source of default options. The idea behind this
+  change is that it's more reliable to get boot options from /proc/cmdline
+  when the targeted system is the one that's booted; but --root would be
+  used from emergency disks or live CDs, in which case the current boot
+  options would be completely wrong, so extracting boot options from GRUB
+  files is the best bet for getting close to the right options.
+
+- Added "@/boot" to default also_scan_dirs setting. This makes kernels
+  show up on Btrfs volumes under Ubuntu (and perhaps others), at least when
+  the Btrfs driver is loaded.
+
+- Added new System Integrity Protection (SIP) rotation feature for Macs
+  running OS X 10.11 or later. This feature is disabled by default, except
+  on CD-R and USB flash drive images, on which it's enabled. To enable it,
+  you must make TWO changes to refind.conf: Uncomment the new "csr_values"
+  item and add "csr_rotate" to the "showtools" line (uncommenting it, too,
+  if it's commented out). If desired, you can set more values on
+  "csr_values"; these are comma-delimited one-byte hexadecimal values that
+  define various SIP states.  When SIP/CSR rotation is activated, a new
+  shield icon appears among the tools. Selecting it causes the next defined
+  value to be set and a confirmation message to appear for three seconds.
+
+- Added display of current System Integrity Protection (SIP) mode to
+  "About" display.
+
+- Added mountesp script for OS X to (you guessed it!) mount the ESP.
+
+- Renamed support scripts: install.sh to refind-install, mvrefind.sh to
+  mvrefind, and mkrlconf.sh to mkrlconf.
+
+- New icons! The old ones were getting to be a jumbled mess of styles,
+  particularly for OS tags. I used the AwOken icon set
+  (http://alecive.deviantart.com/art/AwOken-163570862) for the core icons,
+  then expanded from there by creating my own icons and modifying icons for
+  Debian and Elementary OS. I'm also trying to keep better track of
+  copyrights and licenses on icons. Between that and some icons being for
+  OSes that probably see very little use (FreeDOS and eComstation, for
+  instance), a few OS icons have been lost. If you prefer the old icons,
+  you can continue to use them by upgrading rEFInd, renaming icons-backup
+  to something else (say, icons-classic), and then adding an "icons" line
+  in refind.conf to point to the old icons directory.
+
+- Changed from .zip to .tar.gz as source code archive format. I did this
+  because Linux is the only officially-supported build platform, and
+  tarballs are a more natural fit to a Linux environment. I'm leaving .zip,
+  .deb, and .rpm files as the formats for binary packages.
+
+- Added detection of System Integrity Protection (SIP; aka "rootless") mode
+  to OS X portion of install.sh script. When detected, and if no existing
+  rEFInd installation is found, the script now prints a warning and brief
+  instructions of how to enter the Recovery mode to install rEFInd and
+  suggests aborting the installation. (The user can override and attempt
+  installation anyhow.) If SIP is detected along with an existing rEFInd
+  installation, the script moderates the warning and explains that an
+  update of a working rEFInd will probably succeed, but that re-installing
+  to fix a broken rEFInd will probably fail.
+
+- Added new "spoof_osx_version" token, which takes an OS X version number
+  (such as "10.9") as an option. This feature, when enabled, causes rEFInd
+  to tell a Mac's firmware that the specified version of OS X is being
+  launched. This option is usually unnecessary, but it can help properly
+  initialize some hardware -- particularly secondary video devices. OTOH,
+  on some Macs it can cause hardware (notably keyboards and mice) to become
+  unresponsive, so you should not use this option unnecessarily.
+
+- Worked around an EFI bug that affected my 32-bit Mac Mini: That system
+  seems to have a broken EFI, or possibly a buggy CPU, that causes some
+  (but not all) conversions from floating-point to integer numbers to hang
+  the computer. Such operations were performed only in rEFInd's
+  graphics-resizing code, and so would manifest only when icons or
+  background images were resized. My fix eliminates the use of
+  floating-point operations in the affected function, which eliminates the
+  crashes. There may be some degradation in the quality of resized images,
+  though, particularly on 32-bit systems. (64-bit systems use larger
+  integers, which enable greater precision in my floating-point
+  workaround.)
+
+- Under OS X, install.sh can now be run from the recovery system. This may
+  help work around OS X 10.11's problems with System Integrity Protection,
+  since it should be possible to reboot into the recovery system to install
+  rEFInd without disabling SIP for the main installation, even for just one
+  boot.
+
+0.9.2 (9/19/2015):
+------------------
+
+- Added "--keepname" option to install.sh. This option causes install.sh
+  to keep refind_x64.efi named as such rather than rename it as grubx64.efi
+  when using Shim. This option is meaningful only if the --shim option is
+  also used. This option passes the refind_x64.efi filename as an option to
+  Shim, which overrides the default filename of grubx64.efi. A big caveat:
+  Only Shim 0.7 and later supports this feature. (Shim 0.4 also works if a
+  refind_x64.efi is referred to as "\refind_x64.efi" on the command line,
+  but the need for a leading backslash to refer to a file in the same
+  directory as Shim is so confusing and wrong that I cannot in good
+  conscience support it.) I've not seen signed Shim binaries between 0.4
+  and 0.7, so I don't know if any of them might work.
+
+- Implemented a workaround for a bug in Shim 0.8 that prevented
+  authentication of more than one binary. If any filesystem drivers were
+  installed, the first one would be verified, leaving rEFInd unable to
+  launch anything else unless it was signed by a key in the computer's main
+  Secure Boot db list.
+
+0.9.1 (9/13/2015):
+------------------
+
+- When rEFInd identifies the root (/) partition via the Freedesktop.org
+  Discoverable Partitions Specification, it now checks two of the
+  partition's attributes, as per the DPS (see
+  http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/):
+  - The partition's read-only attribute determines whether to pass a "rw"
+    or "ro" option to the kernel.
+  - If the partition's do-not-automount flag is set, rEFInd will not pass
+    it as a "root=" option to the kernel. This flag can be used to remove
+    all but one partition from consideration as a root (/) partition if a
+    system has more than one with the correct type code.
+
+- Improved Freedesktop.org Discoverable Partitions Specification support:
+  Previously, if no refind_linux.conf file was present but an /etc/fstab
+  file was found, rEFInd ignored the Discoverable Partitions Specification
+  filesystem-type codes. This was fine if /etc/fstab contained a valid "/"
+  filesystem specification, but if that was absent, the result was no
+  "root=" specification being present. Under these circumstances
+  (refind_linux.conf absent, /etc/fstab present but lacking a "/" entry),
+  rEFInd now tries to identify a device to specify as "root=" via the
+  Discoverable Partitions Specification.
+
+- Fixed bug that caused "Found match!" and a prompt to press a key to
+  continue to be printed if any partition used the Freedesktop.org
+  Discoverable Partitions Specification root-partition GUID. (This
+  was leftover debugging/testing code that I somehow missed deleting.)
+
+- Added icon for Elementary OS.
+
+- Added /etc/lsb-release to files scanned for clues about the Linux
+  distribution. This file differentiates Mint and Elementary OS from Ubuntu
+  better than does /etc/os-release, and may also help with other
+  closely-related distributions.
+
+- Improvements to handling of case-insensitive string comparisons. These
+  are buggy on some EFIs, and such bugs affect things like dont_scan_*
+  blacklists, removal of rEFInd's own directory from scanning, matching of
+  keyword names in refind.conf, and even loading of icons. I've replaced
+  many calls to problematic functions with safer calls, which should help a
+  lot. There may still be problems on some systems with some computers,
+  though; as far as I can tell, the bugs are buried deep in some EFI
+  firmware, so I can only replace some of the most direct calls to
+  potentially buggy system calls.
+
+0.9.0 (7/26/2015):
+------------------
+
+- New icon for Kali Linux, submitted by Francesco D'Eugenio.
+
+- Minor code changes to ensure that rEFInd compiles with GCC 5.1. (Tested
+  with GNU-EFI on a Fedora 22 system; not yet tested with the TianoCore
+  EDK2.)
+
+- Added new "fold_linux_kernels" token to refind.conf. This option, when
+  active (the default) "folds" all Linux kernels in a directory into a
+  single entry on the rEFInd menu. The kernel with the most recent time
+  stamp is launched by default. To launch another kernel, you must press F2
+  or Insert; additional kernels appear as options on the first kernel's
+  submenu. To see the pre-0.9.0 behavior, you must set "fold_linux_kernels
+  false" (or one of its synonyms, "off" or "0"). The point of this option
+  is to help de-clutter the rEFInd main menu.
+
+- Added new Linux root (/) partition auto-discovery feature, based on
+  Freedesktop.org's Discoverable Partitions Spec (DPS)
+  (http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/):
+  If no refind_linux.conf file or /etc/fstab file is found, and if a
+  partition with the correct DPS type code for the system architecture is
+  found, rEFInd adds "ro root=/dev/disk/by-partuuid/{GUID}" to the kernel
+  options. This will not help on LVM setups, and will get it right for only
+  one installation on systems with multiple Linux installations, but it may
+  help some users, if/when the DPS type codes become more common.
+
+- Fixed bug that caused a rEFInd crash if an empty refind_linux.conf
+  file was encountered.
+
+- The mkrlconf.sh script now checks the OS on which it's running, which
+  should help avoid confusion or problems by users who mistakenly run it
+  under OS X.
+
+- rEFInd now skips checking for various BIOS-mode boot sector signatures
+  when running on a UEFI-based PC; these checks are run only on Macs. This
+  may reduce startup time on systems with many partitions.
+
+- Fixed Debian debinstall script to work correctly on IA32 systems. It had
+  a bug that caused filesystem drivers and gptsync to not be packaged for
+  IA32.
+
+- Modified Debian postinst file to call install.sh with --localkeys option
+  if sbsign and openssl are available, even when NOT in Secure Boot mode or
+  if shim is not detected. This helps with my Ubuntu PPA when using custom
+  Secure Boot keys, since the PPA is delivered unsigned. (Users will have
+  to have added their own local keys to their firmware's db.) For
+  consistency, I've made the same change to the RPM .spec file.
+
+0.8.7 (3/1/2015):
+-----------------
+
+- Fixed install.sh bug that caused inappropriate installation under the
+  name bootx64.efi (or bootia32.efi) under Linux, with a failure to update
+  the boot entries in NVRAM, has been fixed.
+
+- Added identification of XFS as filesystem type in volume descriptions.
+
+- More fixes to filesystem type detection code. Previous version sometimes
+  identified FAT or NTFS (or anything with a boot loader) as a whole-disk
+  device rather than the correct filesystem type.
+
+- Added protections to the code to reduce the risk of crashes that might
+  occur when dereferencing NULL pointers in various situations.
+
+- I'm deprecating the use of filesystem numbers (as in "fs0:") because
+  they're unreliable -- filesystem numbers can change between boots and
+  might not be the same as those used in an EFI shell or other program.
+  Sooner or later I'll remove code supporting this feature. In the
+  meantime, if it doesn't work for you, please switch to using filesystem
+  labels, partition labels, or partition GUIDs.
+
+- Added detection of FreeBSD's BIOS-mode GPT boot loader. Previously,
+  rEFInd could detect FreeBSD's BIOS-mode MBR boot loader, which gave
+  FreeBSD an appropriate icon on Macs; but the BIOS-mode GPT boot loader
+  code is different, so some recent FreeBSD installations showed up with
+  generic grey diamond icons. This change creates FreeBSD icons instead.
+
+- Added "Secure Boot [active|inactive]" notice to "about" menu for x86
+  (32-bit) systems, since there are now a few 32-bit UEFI systems that
+  support Secure Boot. (AFAIK, these are mostly tablets and convertibles
+  such as the ASUS T100.)
+
+- Added KeyTool.efi and KeyTool-signed.efi to list of MOK managers. KeyTool
+  is the "super-deluxe" Secure Boot key and hash manager provided as part
+  of the efitools package.
+
+- Fixed more instances of "invalid parameter" errors on some EFIs.
+
+- Improved Secure Boot detection in install.sh.
+
+- install.sh should no longer complain when copying Shim or MokManager over
+  itself.
+
+0.8.6 (2/8/2015):
+-----------------
+
+- Removed special case of ignoring an HFS+ name of "HFS+ volume", since the
+  old rEFInd HFS+ driver that produced this name for all HFS+ volumes has
+  long since been updated to deliver a real name.
+
+- Addition of new Windows 8 OS icon. On Macs and for BIOS/legacy boots, the
+  new icon is now used for Windows Vista, 7, and 8, while the old one is
+  used for earlier versions of Windows. For EFI-mode boots, the new icon is
+  used universally.
+
+- If the NTFS driver is loaded, rEFInd now scans NTFS volumes on Macs for
+  the presence of Windows boot files, and removes any NTFS volume that
+  lacks such files from the BIOS/legacy boot list. This should help
+  unclutter the display on Macs that contain NTFS data partitions.
+
+- Fixed bug that caused misidentification of both whole disks and NTFS
+  volumes as being FAT. (This bug affected the identification of devices
+  and locations in the rEFInd menu, not actual access to devices.)
+
+- Code refactoring to clear out legacy-boot functions from the
+  ever-expanding refind/main.c file.
+
+- Added new "badges" option to the "hideui" token in refind.conf. This
+  option hides the device-type badges associated with the OS boot options.
+
+- Reverted rEFIt commit r472, introduced in rEFInd 0.8.5 to support more
+  BMP images because I've received bug reports that it's causing existing
+  selection images to fail to load.
+
+- Fixed install.sh bug that caused misidentification of installation
+  directory under OS X if an already-mounted ESP has spaces in its path.
+
+- Fixed Mac-specific install.sh bug that could cause misidentification of
+  the ESP on disks with partition numbers of 10 or above.
+
+
 0.8.5 (2/1/2015):
 -----------------