]> code.delx.au - refind/commitdiff
Remove exFAT partitions from boot list under OS X unless they contain
authorsrs5694 <srs5694@users.sourceforge.net>
Thu, 7 Nov 2013 15:40:13 +0000 (10:40 -0500)
committersrs5694 <srs5694@users.sourceforge.net>
Thu, 7 Nov 2013 15:40:13 +0000 (10:40 -0500)
a known boot loader.

NEWS.txt
install.sh
refind/lib.c
refind/main.c

index 20bda5ae4229b1bb6b8146d47b3073106925f444..eaea6b47d4a71a23245dbfff7aff1b2368cebf25 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,12 @@
-0.7.5 (10/??/2013):
+0.7.5 (11/??/2013):
 -------------------
 
+- Fixed bug that caused unbootable exFAT partitions to show up as
+  bootable in OS X.
+
+- Fixed bug in install.sh that caused installs to the ESP on recent
+  versions of OS X to fail.
+
 - Fixed bug that caused rEFInd to hang on some Macs when multiple EFI
   drivers were present.
 
index 645c1b46660bfd8f2dfc9162771d6370105e22f3..fd7bb1f9c1236dcd1bc76ce75fbc55fcd1273568 100755 (executable)
@@ -409,8 +409,8 @@ MountDefaultTarget() {
 MountOSXESP() {
    # Identify the ESP. Note: This returns the FIRST ESP found;
    # if the system has multiple disks, this could be wrong!
-   Temp=`diskutil list | grep " EFI "`
-   Esp=/dev/`echo $Temp | cut -f 5 -d ' '`
+   Temp=`diskutil list | grep " EFI " | grep -o 'disk.*'`
+   Esp=/dev/`echo $Temp`
    # If the ESP is mounted, use its current mount point....
    Temp=`df -P | grep "$Esp"`
    InstallDir=`echo $Temp | cut -f 6 -d ' '`
index ee8acd99a274814d9f2e5e44289db94f4bc0d846..4989076e88bad395a9a4efaf8d4886eac82c390d 100644 (file)
@@ -510,7 +510,7 @@ static VOID ScanVolumeBootcode(REFIT_VOLUME *Volume, BOOLEAN *Bootable)
     if (!EFI_ERROR(Status)) {
 
         Volume->FSType = IdentifyFilesystemType(Buffer, SAMPLE_SIZE);
-        if (*((UINT16 *)(Buffer + 510)) == 0xaa55 && Buffer[0] != 0) {
+        if ((*((UINT16 *)(Buffer + 510)) == 0xaa55 && Buffer[0] != 0) && (FindMem(Buffer, 512, "EXFAT", 5) == -1)) {
             *Bootable = TRUE;
             Volume->HasBootCode = TRUE;
         }
index 7bb69ffefa285b2b914aa719b3e9afb1cc682e85..2ceb3348272efd151de552807b745c4b4ad54ed8 100644 (file)
@@ -153,7 +153,7 @@ static VOID AboutrEFInd(VOID)
 {
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.4.3");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.4.5");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2013 Roderick W. Smith");
@@ -2430,7 +2430,6 @@ efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
     ReadConfig(CONFIG_FILE_NAME);
     ScanVolumes();
 
-    PauseForKey();
     InitScreen();
     WarnIfLegacyProblems();
     MainMenu.TimeoutSeconds = GlobalConfig.Timeout;