From 970af7382223d2dd18a6d29db512eb7009a6ff6f Mon Sep 17 00:00:00 2001
From: srs5694
Originally written: 3/14/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/configfile.html b/docs/refind/configfile.html index 0c4cd89..599b3b5 100644 --- a/docs/refind/configfile.html +++ b/docs/refind/configfile.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/drivers.html b/docs/refind/drivers.html index bbdad5b..d6ea5b5 100644 --- a/docs/refind/drivers.html +++ b/docs/refind/drivers.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 4/19/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This 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!
@@ -260,14 +260,15 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com mainly because it compiled cleanly with no extra work, aside from providing a Makefile entry for it. + +Originally written: 3/14/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This 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!
@@ -222,6 +222,8 @@ such as those with Gigabyte's Hybrid EFI, lack a usable CSM.Originally written: 3/14/2012; last Web page update: -8/2/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This 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!
@@ -138,7 +138,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/installing.html b/docs/refind/installing.html index d56a256..6615d19 100644 --- a/docs/refind/installing.html +++ b/docs/refind/installing.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This 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!
@@ -226,11 +226,11 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comI provide RPM and Debian package files for rEFInd; and starting with version 0.8.1, I'm maintaining an Ubuntu PPA for rEFInd. If you have a working RPM-based or Debian-based Linux installation that boots in EFI mode, using one of these files is likely to be the easiest way to install rEFInd: You need only download the file and issue an appropriate installation command. In some cases, double-clicking the package in your file manager will install it. If that doesn't work, a command like the following will install the RPM on an RPM-based system:
-# rpm -Uvh refind-0.9.0-1.x86_64.rpm+
# rpm -Uvh refind-0.9.1-1.x86_64.rpm
On a Debian-based system, the equivalent command is:
-# dpkg -i refind_0.9.0-1_amd64.deb+
# dpkg -i refind_0.9.1-1_amd64.deb
Either command produces output similar to that described for using the install.sh script, so you can check it for error messages and other signs of trouble. The package file installs rEFInd and registers it with the EFI to be the default boot loader. The script that runs as part of the installation process tries to determine if you're using Secure Boot, and if so it will try to configure rEFInd to launch using shim; however, this won't work correctly on all systems. Ubuntu 12.10 users who are booting with Secure Boot active should be wary, since the resulting installation will probably try to use Ubuntu's version of shim, which won't work correctly with rEFInd. The shim program provided with more recent versions of Ubuntu should work correctly.
@@ -258,6 +258,8 @@ $ sudo apt-get install refindBy default, the install.sh script installs rEFInd to your disk's ESP. Under Mac OS X, you can instead install rEFInd to your current OS X boot partition by passing the script the --notesp option, or to a non-boot HFS+ partition by using the --ownhfs devicefile option. Under either OS, you can install to something other than the currently-running OS by using the --root /mountpoint option. (See Table 1 for details.)
Under Linux, install.sh will be most reliable if your ESP is already mounted at /boot or /boot/efi, as described in more detail in the Installing rEFInd Manually Using Linux section. (If you installed Linux in EFI mode, chances are your ESP is properly mounted.) If your ESP is not so mounted, install.sh will attempt to locate and mount an ESP, but this action is not guaranteed to work correctly. If you run install.sh from a BIOS/legacy-mode boot, particularly on a computer that also runs Windows, you should be aware that the tricks the script uses to install itself from BIOS mode are rather delicate. You can convert to a more conventional configuration using the mvrefind.sh script after you've booted in EFI mode.
@@ -512,6 +514,8 @@ Filesystem 1K-blocks Used Available Use% Mounted onBefore installing rEFInd on a Mac, you must determine whether it uses a 32-bit or 64-bit EFI implementation. Most Intel-based Macs have 64-bit EFIs, so you should use the refind_x64.efi file with them; but very early Intel-based Macs have 32-bit EFIs (and sometimes 32-bit CPUs), which require the refind_ia32.efi file. You can determine whether your Mac needs the x86-64 or IA32 build by typing the following command in a Mac Terminal window:
@@ -616,6 +620,8 @@ $ ioreg -l -p IODeviceTree | grep firmware-abiThe EasyUEFI tool is a free (as in beer) GUI tool for managing EFI boot programs. I've only tried it once, and it seemed fairly intuitive and easy to use, but I don't have detailed instructions on how to use it. If you want to use EasyUEFI, you'll have to use it in place of bcdedit at the end of the following procedure.
+ +Attempt this method of installation only on a UEFI-based PC; this method will not work on Windows that's installed on a Mac in BIOS/CSM/legacy mode. To install rEFInd under Windows, you must first find a way to access the ESP, which Windows normally hides from view. One way to accomplish this goal, and to proceed forward once the ESP is accessible, is as follows:
diff --git a/docs/refind/linux.html b/docs/refind/linux.html index 1db78a6..c51d2cc 100644 --- a/docs/refind/linux.html +++ b/docs/refind/linux.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
Originally written: 3/19/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/revisions.html b/docs/refind/revisions.html index c46888a..88b7cd7 100644 --- a/docs/refind/revisions.html +++ b/docs/refind/revisions.html @@ -16,7 +16,7 @@by Roderick W. Smith, rodsmith@rodsbooks.com
-Last Web page update: 7/26/2015
+Last Web page update: 9/13/2015
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!
@@ -132,6 +132,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com+
- 0.9.1 (9/13/2015)—This version has improved the Discoverable Partitions Specification (DPS) support in a number of ways that should make it more reliable when /etc/fstab omits references to the root (/) 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 /etc/lsb-release as well as /etc/os_release, 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.
+- 0.9.0 (7/26/2015—This version gets a bump up to 0.9.0 mainly because of a highly user-visible new feature: kernel folding. 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 fold_linux_kernels false in refind.conf. Another new feature is support for the Discoverable Partitions Spec, which enables rEFInd to locate the Linux root (/) partition without a refind_linux.conf or /etc/fstab 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 postinst script now calls install.sh with --localkeys if sbsign and openssl 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 gptsync to not be built in the PPA; mkrlconf.sh 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 refind_linux.conf 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).
- 0.8.7 (3/1/2015)—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 install.sh, recognition of KeyTool.efi and KeyTool-signed.efi as MOK manager utilities, and reporting of Secure Boot status for x86 (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 install.sh that caused inappropriate installation to the filename bootx64.efi or bootia32.efi, and failure to update the computer's boot list, has been squashed. Finally, I'm deprecating the use of fsx: 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 fsx: 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.
diff --git a/docs/refind/secureboot.html b/docs/refind/secureboot.html index bbb7114..b7cba26 100644 --- a/docs/refind/secureboot.html +++ b/docs/refind/secureboot.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 11/13/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/themes.html b/docs/refind/themes.html index 100ea0d..deb6c01 100644 --- a/docs/refind/themes.html +++ b/docs/refind/themes.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 4/19/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/todo.html b/docs/refind/todo.html index dd55036..5b71d3c 100644 --- a/docs/refind/todo.html +++ b/docs/refind/todo.html @@ -17,7 +17,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This 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!
@@ -233,8 +233,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com removing rEFInd's drivers has caused the problem to go into remission.
Originally written: 3/14/2012; last Web page update: -7/26/2015, referencing rEFInd 0.9.0
+9/13/2015, referencing rEFInd 0.9.1This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/filesystems/fsw_efi.c b/filesystems/fsw_efi.c index dd0c395..8516588 100644 --- a/filesystems/fsw_efi.c +++ b/filesystems/fsw_efi.c @@ -78,7 +78,7 @@ EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid = EFI_FILE_SYSTEM_VOLUME_LABEL_INFO /** Helper macro for stringification. */ #define FSW_EFI_STRINGIFY(x) #x /** Expands to the EFI driver name given the file system type name. */ -#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.8.7 " FSW_EFI_STRINGIFY(t) L" File System Driver" +#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.9.1 " FSW_EFI_STRINGIFY(t) L" File System Driver" // function prototypes @@ -568,7 +568,7 @@ fsw_status_t fsw_efi_read_block(struct fsw_volume *vol, fsw_u64 phys_bno, void * } // if cache memory allocated } // if (ReadCache < 0) - if (Caches[ReadCache].Cache != NULL && Caches[ReadCache].CacheValid == TRUE) { + if (Caches[ReadCache].Cache != NULL && Caches[ReadCache].CacheValid == TRUE && vol->phys_blocksize > 0) { CopyMem(buffer, &Caches[ReadCache].Cache[StartRead - Caches[ReadCache].CacheStart], vol->phys_blocksize); } else { ReadOneBlock = TRUE; diff --git a/filesystems/fsw_efi_lib.c b/filesystems/fsw_efi_lib.c index a93a72b..31f7c2f 100644 --- a/filesystems/fsw_efi_lib.c +++ b/filesystems/fsw_efi_lib.c @@ -115,7 +115,7 @@ UINTN fsw_efi_strsize(struct fsw_string *s) VOID fsw_efi_strcpy(CHAR16 *Dest, struct fsw_string *src) { - if (src->type == FSW_STRING_TYPE_EMPTY) { + if (src->type == FSW_STRING_TYPE_EMPTY | src->size == 0) { Dest[0] = 0; } else if (src->type == FSW_STRING_TYPE_UTF16) { CopyMem(Dest, src->data, src->size); diff --git a/install.sh b/install.sh index 446f35e..b8f4d92 100755 --- a/install.sh +++ b/install.sh @@ -657,7 +657,7 @@ SetupMacHfs() {