]> code.delx.au - refind/commitdiff
Detect Boot Repair's backed-up Windows boot loader.
authorsrs5694 <srs5694@users.sourceforge.net>
Fri, 5 Jul 2013 22:32:48 +0000 (18:32 -0400)
committersrs5694 <srs5694@users.sourceforge.net>
Fri, 5 Jul 2013 22:32:48 +0000 (18:32 -0400)
NEWS.txt
docs/refind/todo.html
refind/main.c

index da8c281fb32ce5502a7f59cd8b37ec201b639194..bdc1a331af9d08eea4e269927d918120da7a0006 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,3 +1,12 @@
+0.7.1 (?/??/2013):
+------------------
+
+- Fixed build problem with recent development versions of EDK2.
+
+- Added scan for Boot Repair's backup of the Windows boot loader
+  (bkpbootmgfw.efi). If found, give separate entries for it and for
+  bootmgfw.efi, each with its own descriptive text label.
+
 0.7.0 (6/27/2013):
 ------------------
 
index 01cf9461b707784a434ee8c3a91363a0258d8c0a..e7e6b533697be4233420a34465b9baa39826d0ae 100644 (file)
@@ -228,10 +228,10 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     <li>I've been receiving reports of blank screens when using rEFInd on
        some recent Mac models. I've investigated this with the help of one
        user, and I suspect that Apple has made changes to its firmware
-       that are likely to affect just about any EFI program. I don't know
-       how to fix the problem at the moment, though; I need both
-       documentation and access to an afflicted computer to do the
-       necessary work, and I have neither.</li>
+       that are likely to affect just about any EFI program. I don't have
+       a definitive solution, but at least one user has reported that
+       removing rEFInd's drivers has caused the problem to go into
+       remission.</li>
 
     <li>The <a href="http://www.rodsbooks.com/gb-hybrid-efi/">Gigabyte
        Hybrid EFI</a> has a bug that causes the allegedly case-insensitive
@@ -300,6 +300,16 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
        adding a check for duplicate filesystem UUIDs to the
        partition-scanning code.</li>
 
+    <li>Some Macs experience problems with waking up from suspend states
+       when rEFInd is installed. Unfortunately, I lack the hardware to
+       test and experiment with this (my only Intel-based Mac doesn't
+       exhibit this problem), so I can't fix this myself. <a
+       href="apple.stackexchange.com/questions/91139/why-does-my-mbp-sleep-on-mountain-lion-and-often-not-wake-up/91150#91150">Using
+       <tt>pmset</tt> to disable the <tt>autopoweroff</tt> option</a> is
+       <a
+       href="http://apple.stackexchange.com/questions/91529/macbook-air-not-waking-up-from-suspend-sleep-with-refind-boot-manager-installed">claimed
+       by some</a> to at least partially fix the problem, though.</li>
+
     </ul></li> <!-- Known bugs -->
 
 <li><b>New features I'd like to add:</b>
index 2c3b18dab8cf7182fdb2a0610733b1ee91c5f020..47588eebea30a8db67d62da4e17039356c5b6cbb 100644 (file)
@@ -147,7 +147,7 @@ static VOID AboutrEFInd(VOID)
 
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.0");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.0.2");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2013 Roderick W. Smith");
@@ -926,7 +926,8 @@ VOID SetLoaderDefaults(LOADER_ENTRY *Entry, CHAR16 *LoaderPath, REFIT_VOLUME *Vo
       Entry->UseGraphicsMode = GlobalConfig.GraphicsFor & GRAPHICS_FOR_GRUB;
    } else if (StriCmp(FileName, L"cdboot.efi") == 0 ||
               StriCmp(FileName, L"bootmgr.efi") == 0 ||
-              StriCmp(FileName, L"bootmgfw.efi") == 0) {
+              StriCmp(FileName, L"bootmgfw.efi") == 0 ||
+              StriCmp(FileName, L"bkpbootmgfw.efi") == 0) {
       MergeStrings(&OSIconName, L"win", L',');
       Entry->OSType = 'W';
       ShortcutLetter = 'W';
@@ -1273,6 +1274,7 @@ static VOID ScanEfiFiles(REFIT_VOLUME *Volume) {
    CHAR16                  FileName[256], *Directory, *MatchPatterns, *VolName = NULL, *SelfPath;
    UINTN                   i, Length;
    BOOLEAN                 ScanFallbackLoader = TRUE;
+   BOOLEAN                 FoundBRBackup = FALSE;
 
    MatchPatterns = StrDuplicate(LOADER_MATCH_PATTERNS);
    if (GlobalConfig.ScanAllLinux)
@@ -1298,13 +1300,24 @@ static VOID ScanEfiFiles(REFIT_VOLUME *Volume) {
       } // if should scan Mac directory
 
       // check for Microsoft boot loader/menu
-      StrCpy(FileName, L"EFI\\Microsoft\\Boot\\bootmgfw.efi");
-      if (FileExists(Volume->RootDir, FileName) && ShouldScan(Volume, L"EFI\\Microsoft\\Boot") &&
-          !IsIn(L"bootmgfw.efi", GlobalConfig.DontScanFiles)) {
-         AddLoaderEntry(FileName, L"Microsoft EFI boot", Volume);
-         if (DuplicatesFallback(Volume, FileName))
-            ScanFallbackLoader = FALSE;
-      }
+      if (ShouldScan(Volume, L"EFI\\Microsoft\\Boot")) {
+         StrCpy(FileName, L"EFI\\Microsoft\\Boot\\bkpbootmgfw.efi");
+         if (FileExists(Volume->RootDir, FileName) &&  !IsIn(L"bkpbootmgfw.efi", GlobalConfig.DontScanFiles)) {
+            AddLoaderEntry(FileName, L"Microsoft EFI boot (Boot Repair backup)", Volume);
+            FoundBRBackup = TRUE;
+            if (DuplicatesFallback(Volume, FileName))
+               ScanFallbackLoader = FALSE;
+         }
+         StrCpy(FileName, L"EFI\\Microsoft\\Boot\\bootmgfw.efi");
+         if (FileExists(Volume->RootDir, FileName) &&  !IsIn(L"bootmgfw.efi", GlobalConfig.DontScanFiles)) {
+            if (FoundBRBackup)
+               AddLoaderEntry(FileName, L"Supposed Microsoft EFI boot (probably GRUB)", Volume);
+            else
+               AddLoaderEntry(FileName, L"Microsoft EFI boot", Volume);
+            if (DuplicatesFallback(Volume, FileName))
+               ScanFallbackLoader = FALSE;
+         }
+      } // if
 
       // scan the root directory for EFI executables
       if (ScanLoaderDir(Volume, L"\\", MatchPatterns))