From ad41af04b0b2e3c789935776eb65f52821cfa8ff Mon Sep 17 00:00:00 2001 From: srs5694 Date: Fri, 14 Mar 2014 21:15:26 -0400 Subject: [PATCH] Added check for unbootable German iPartition-created FAT partition, so as to exclude such partitions from the Mac's BIOS boot list. --- NEWS.txt | 6 ++++++ refind/lib.c | 8 ++++++-- refind/main.c | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/NEWS.txt b/NEWS.txt index f770422..714844d 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,3 +1,9 @@ +0.7.9 (?/??/2014): +------------------ + +- Added detection of German-language FAT (non-)boot sector created by + iPartition to keep it out of the Mac boot menu. + 0.7.8 (3/9/2014): ----------------- diff --git a/refind/lib.c b/refind/lib.c index cedf1a7..dc187c6 100644 --- a/refind/lib.c +++ b/refind/lib.c @@ -507,7 +507,7 @@ static VOID ScanVolumeBootcode(REFIT_VOLUME *Volume, BOOLEAN *Bootable) UINT8 Buffer[SAMPLE_SIZE]; UINTN i; MBR_PARTITION_INFO *MbrTable; - BOOLEAN MbrTableFound; + BOOLEAN MbrTableFound = FALSE; Volume->HasBootCode = FALSE; Volume->OSIconName = NULL; @@ -635,9 +635,13 @@ static VOID ScanVolumeBootcode(REFIT_VOLUME *Volume, BOOLEAN *Bootable) if (FindMem(Buffer, 512, "Press any key to restart", 24) >= 0) Volume->HasBootCode = FALSE; + // dummy FAT boot sector (created by iPartition) + if ((FindMem(Buffer, 512, "Medienfehler", 12) >= 0) && + (FindMem(Buffer, 512, "Neustart: Taste dr\x81" "ken", 22) >= 0)) + Volume->HasBootCode = FALSE; + // check for MBR partition table if (*((UINT16 *)(Buffer + 510)) == 0xaa55) { - MbrTableFound = FALSE; MbrTable = (MBR_PARTITION_INFO *)(Buffer + 446); for (i = 0; i < 4; i++) if (MbrTable[i].StartLBA && MbrTable[i].Size) diff --git a/refind/main.c b/refind/main.c index 5383779..7e1367e 100644 --- a/refind/main.c +++ b/refind/main.c @@ -156,7 +156,7 @@ static VOID AboutrEFInd(VOID) { if (AboutMenu.EntryCount == 0) { AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT); - AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.8"); + AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.7.8.1"); AddMenuInfoLine(&AboutMenu, L""); AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer"); AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2013 Roderick W. Smith"); -- 2.39.2