]> code.delx.au - refind/commitdiff
Change to install.sh to fix bug when installing to ESP on recent
authorsrs5694 <srs5694@users.sourceforge.net>
Sat, 2 Nov 2013 03:03:48 +0000 (23:03 -0400)
committersrs5694 <srs5694@users.sourceforge.net>
Sat, 2 Nov 2013 03:03:48 +0000 (23:03 -0400)
versions of OS X.

NEWS.txt
docs/refind/drivers.html
docs/refind/index.html
docs/refind/themes.html
install.sh
refind/lib.c

index cc6651d632c2fb3dc6291b471de03e77109703ff..20bda5ae4229b1bb6b8146d47b3073106925f444 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,9 @@
 0.7.5 (10/??/2013):
 -------------------
 
+- Fixed bug that caused rEFInd to hang on some Macs when multiple EFI
+  drivers were present.
+
 - Fixed bug that caused clear to default gray screen when launching OSes
   with 'use_graphics_for' enabled, even when the rEFInd background is not
   gray. Now rEFInd clears to the same background color used in its menu.
index cd67781260c0840c7308a3bad995088b8de50a30..2550030060c248f7bbc902be5cdb52023f2d05ef 100644 (file)
@@ -286,6 +286,8 @@ fs0: <tt class="userinput">map -r</tt>
 
 <li><b>Ext2Pkg</b>&mdash;This driver, based on <a href="https://bitbucket.org/alinrus/ext2pkg">bitbucket</a> and with a backup on <a href="https://github.com/the-ridikulus-rat/Tianocore_Ext2Pkg">github,</a> appears to be an ext2fs/ext3fs driver built independently of the driver written by Christoph Pfisterer. The linked-to sites provide access to source code via <tt>git</tt> but do not provide binaries. When I built binaries, they failed to work. Under VirtualBox, the driver loaded but then hung when I tried to access an ext2 filesystem. On a 32-bit Mac Mini, I got error messages when I tried to access an ext2 filesystem. As I write, the code was last updated in March of 2012. If you check the project and it's been updated more recently, it might be worth trying. Otherwise, I can't recommend this driver. I mention it here only in case it improves in the future.</li>
 
+<li><b>Paragon's UFSD</b>&mdash;According to <a href="http://blog.paragon-software.com/?p=2951">this blog post,</a> Paragon Software has ported its <a href="http://www.paragon-software.com/technologies/ufsd.html">Universal File System Drivers (UFSD)</a> to EFI, providing "transparent access to NTFS, HFS+, ExFAT, and ExtFS" (sic). The entry doesn't provide any download links, and it's unclear if the product is (or will be) available for free or on a pay basis. I haven't tried these drivers, so I can't comment on their quality.</li>
+
 </ul>
 
 <p>Most of these cross-project drivers appear to be related, and most of them have fed into rEFInd's drivers. I used the Clover package, which in turn was based on the VirtualBox drivers, as a starting point. Everybody else has dropped rEFIt's original ReiserFS driver, but I added that back. Of these drivers, only the Clover EFI Tools NTFS driver is missing from rEFInd. Specific versions can have their own quirks, though. For instance, the Clover (and I suspect VirtualBox) drivers don't return volume labels, which causes rEFInd to display loaders on those volumes as being on a disk called <tt>Unknown</tt>. (I fixed that bug for rEFInd's version, and it wasn't present in the original rEFIt drivers.) Most of these drivers also suffer from speed problems on some computers. This is worst with the ext2fs drivers under VirtualBox; on my main computer, that combination takes 3 minutes to load a Linux kernel and initial RAM disk file! Most real computers don't suffer nearly so badly, but some can take an extra five seconds or so to boot a kernel. I've fixed the speed problems in rEFInd's drivers as of version 0.7.0.</p>
index b7df7047969425d708576ee42fc145c70f907658..a094f705fdc78195d99fd9ed5c83401ef969db2f 100644 (file)
@@ -200,6 +200,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <li>My own <a href="http://www.rodsbooks.com/efi-bootloaders/">EFI Boot Loaders for Linux</a> page provides information on installing and configuring several common Linux EFI boot loaders and boot managers.</li>
 
+<li><a href="http://www.rodsbooks.com/linux-uefi/">My Linux on UEFI: A Quick Installation Guide</a> page provides helpful tips on how to install Linux on EFI-based systems.</li>
+
 <li>Phoenix Technologies maintains a <a href="http://wiki.phoenix.com/wiki/index.php/Main_Page">wiki on EFI topics,</a> including <a href="http://wiki.phoenix.com/wiki/index.php/Category:UEFI_2.0">information on many EFI system calls</a> useful to programmers.</li>
 
 <li>Matthew J. Garrett, the developer of the shim boot loader to manage Secure Boot, maintains <a href="http://mjg59.dreamwidth.org/">a blog</a> in which he often writes about EFI issues.</li>
index 15c5418fa0a59a2ebbad6e24247f05aa431c9185..bc5efb329187c71ad134efa4bdc28d8cc5cab310 100644 (file)
@@ -266,7 +266,7 @@ to be tedious.</p>
 
 <p>I used icons from the Oxygen Icons project, both from the <a href="http://deviantdark.deviantart.com/art/Oxygen-Refit-70199755">Oxygen Refit</a> package and from Gentoo's <tt>oxygen-icons</tt> package. These icons supplemented or replaced icons that rEFIt used; however, many OS icons (such as those for Windows and Mac OS) are carried over from rEFIt. I've also used a handful of icons for individual Linux distributions from other sources&mdash;usually documentation associated with the distribution in question.</p>
 
-<p>In addition to this default icon set, I've received word of two other rEFInd themes:</p>
+<p>In addition to this default icon set, I've received word of three other rEFInd themes:</p>
 
 <ul>
 
@@ -278,6 +278,8 @@ to be tedious.</p>
 
 <li>Evan Purkhiser's <a href="https://github.com/EvanPurkhiser/rEFInd-minimal-theme">Minimal theme</a> uses black icons on a gray background of varied brightness.</li>
 
+<li>Sean Gibbons' <a href="http://sdbinwiiexe.deviantart.com/art/rEFInd-Next-Theme-407754566">rEFInd Next</a> theme is "inspired by both iOS 7 and Windows 8 interfaces." It includes both a background image and a number of OS icons.</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 2239a72f919820a0cb59fc158a361df0fe9fd6ae..645c1b46660bfd8f2dfc9162771d6370105e22f3 100755 (executable)
@@ -33,6 +33,7 @@
 #
 # Revision history:
 #
+# 0.7.5   -- Fixed bug when installing to ESP on recent versions of OS X
 # 0.7.2   -- Fixed code that could be confused by use of autofs to mount the ESP
 # 0.7.0   -- Added support for the new Btrfs driver
 # 0.6.12  -- Added support for PreLoader as well as for shim
@@ -411,7 +412,7 @@ MountOSXESP() {
    Temp=`diskutil list | grep " EFI "`
    Esp=/dev/`echo $Temp | cut -f 5 -d ' '`
    # If the ESP is mounted, use its current mount point....
-   Temp=`df | grep "$Esp"`
+   Temp=`df -P | grep "$Esp"`
    InstallDir=`echo $Temp | cut -f 6 -d ' '`
    if [[ "$InstallDir" == '' ]] ; then
       mkdir /Volumes/ESP &> /dev/null
index 2e06c96aa2d58f4dc511ec79e825f58990b5beda..ee8acd99a274814d9f2e5e44289db94f4bc0d846 100644 (file)
@@ -201,6 +201,11 @@ EFI_STATUS InitRefitLib(IN EFI_HANDLE ImageHandle)
 // called before running external programs to close open file handles
 VOID UninitRefitLib(VOID)
 {
+    // This piece of code was made to correspond to weirdness in ReinitRefitLib().
+    // See the comment on it there.
+    if(SelfRootDir == SelfVolume->RootDir)
+        SelfRootDir=0;
+
     UninitVolumes();
 
     if (SelfDir != NULL) {