From 056ca03285e703164b72c615aeb079fe55113a5e Mon Sep 17 00:00:00 2001
From: srs5694
Date: Wed, 4 Feb 2015 16:09:38 -0500
Subject: [PATCH] Further tweaks to new NTFS Windows boot partition filtering.
---
CREDITS.txt | 6 ++++++
NEWS.txt | 10 ++++++++++
docs/refind/drivers.html | 12 +++++++++---
docs/refind/todo.html | 16 ++++++++++++++++
icons/os_win8.png | Bin 10265 -> 7117 bytes
refind/lib.c | 21 ++++++++++++---------
refind/main.c | 6 +++---
7 files changed, 56 insertions(+), 15 deletions(-)
diff --git a/CREDITS.txt b/CREDITS.txt
index 051d523..887e892 100644
--- a/CREDITS.txt
+++ b/CREDITS.txt
@@ -115,6 +115,12 @@ Icons and graphics:
(http://en.wikipedia.org/wiki/File:Google_Chrome_icon_and_wordmark_%282011%29.svg),
which in turn is Google's original work.
+* The Windows 8 icon (icons/os_win8.png) is taken from Martz90's Cicle
+ Icons icon set
+ (http://www.iconarchive.com/show/circle-icons-by-martz90.html), which is
+ licensed under the CC Attribution-Noncommercial-No Derivate 4.0 license
+ (http://creativecommons.org/licenses/by-nc-nd/4.0/).
+
* The icon used (at different sizes) for both the generic network OS and
for the network-boot badge is from
https://www.iconfinder.com/icons/37048/intranet_network_icon.
diff --git a/NEWS.txt b/NEWS.txt
index 5d8a5ae..071b2ce 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,16 @@
0.8.6 (?/??/2016):
------------------
+- Addition of new Windows 8 OS icon. On Macs and for BIOS/legacy boots, the
+ new icon is now used for Windows Vista, 7, and 8, while the old one is
+ used for earlier versions of Windows. For EFI-mode boots, the new icon is
+ used universally.
+
+- If the NTFS driver is loaded, rEFInd now scans NTFS volumes on Macs for
+ the presence of Windows boot files, and removes any NTFS volume that
+ lacks such files from the BIOS/legacy boot list. This should help
+ unclutter the display on systems that contain NTFS data partitions.
+
- Fixed bug that caused misidentification of both whole disks and NTFS
volumes as being FAT. (This bug affected the identification of devices
and locations in the rEFInd menu, not actual access to devices.)
diff --git a/docs/refind/drivers.html b/docs/refind/drivers.html
index 36e800f..037763f 100644
--- a/docs/refind/drivers.html
+++ b/docs/refind/drivers.html
@@ -261,9 +261,15 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
NTFS—Samuel Liao contributed this driver, which uses the
rEFIt/rEFInd driver framework. My own testing of it is limited, but it
does work for me. Note that this driver is not required
- to boot Windows with rEFInd, since Windows stores its boot loader on
- the (FAT) ESP. You might use this driver if you want to store large
- boot files, such as EFI-accessible RAM disk images, from Windows.
+ to boot Windows with rEFInd, since Windows stores its EFI boot loader
+ on the (FAT) ESP, and the BIOS boot process (generally used when
+ dual-booting on a Mac) relies only on the partition's boot sector,
+ which is read without the benefit of this driver. You might use this
+ driver if you want to store large boot files, such as EFI-accessible
+ RAM disk images, from Windows. Also, if you have NTFS data partitions
+ on a Mac, loading this driver should exclude them from the boot menu;
+ and you should see NTFS volume names in the boot menu on a Mac if you
+ load this driver.
diff --git a/docs/refind/todo.html b/docs/refind/todo.html
index 33f5613..b8930a1 100644
--- a/docs/refind/todo.html
+++ b/docs/refind/todo.html
@@ -209,6 +209,14 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
single file, so rEFInd is divorced from its configuration and
support files.
+ A way to identify specific Windows versions and present unique
+ icons or change the text is desirable. Currently, a crude
+ distinction of XP and earlier vs. Vista and later is possible for
+ BIOS-booting on Macs, but no such distinction is made for EFI-mode
+ booting, and nothing finer-grained is attempted. Improvements will
+ probably require identifying unique features of each version's boot
+ loader files or boot sector code.
+
Known bugs that need squashing:
@@ -260,6 +268,14 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com
have the equipment and skill to do so, I'd be interested in
receiving a patch.
+ If you use a true MBR disk on a Mac to boot Windows or some other
+ BIOS-only OS, and if that disk has an extended partition, that
+ partition may show up in rEFInd as a bootable FAT partition. The
+ reason is twofold: FAT doesn't contain a simple "magic" signature
+ like most filesystems, so it's easy to misidentify something else
+ as FAT; and it's hard to positively identify boot code vs. other
+ random data.
+
The re-scan feature occasionally produces odd results, such as
ignoring new media or keeping old media that have been ejected.
This should be investigated and fixed.
diff --git a/icons/os_win8.png b/icons/os_win8.png
index 1bbd727c8ead7f0c94537466f5c8fc21aac526ff..d1cdfaedfc95bdddfcfa4b3eb5bae6df363de5a7 100644
GIT binary patch
literal 7117
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
Dz9(N!
literal 10265
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
f^f$U@yKesOSIconName = L"netbsd";
Volume->OSName = L"NetBSD";
+ // Windows NT/200x/XP
} else if (FindMem(Buffer, SECTOR_SIZE, "NTLDR", 5) >= 0) {
Volume->HasBootCode = TRUE;
Volume->OSIconName = L"win";
Volume->OSName = L"Windows";
+ // Windows Vista/7/8
} else if (FindMem(Buffer, SECTOR_SIZE, "BOOTMGR", 7) >= 0) {
Volume->HasBootCode = TRUE;
- Volume->OSIconName = L"winvista,win";
+ Volume->OSIconName = L"win8,win";
Volume->OSName = L"Windows";
} else if (FindMem(Buffer, 512, "CPUBOOT SYS", 11) >= 0 ||
@@ -835,7 +837,7 @@ static CHAR16 *GetVolumeName(REFIT_VOLUME *Volume) {
return FoundName;
} // static CHAR16 *GetVolumeName()
-// Determine the unique GUID of the volume and store it.
+// Determine the unique GUID and name of the volume and store them.
static VOID SetPartGuidAndName(REFIT_VOLUME *Volume, EFI_DEVICE_PATH_PROTOCOL *DevicePath) {
HARDDRIVE_DEVICE_PATH *HdDevicePath;
@@ -851,16 +853,17 @@ static VOID SetPartGuidAndName(REFIT_VOLUME *Volume, EFI_DEVICE_PATH_PROTOCOL *D
} // if
} // VOID SetPartGuid()
-// Return TRUE if NTFS boot files are found, FALSE otherwise.
-// Assumes Volume is already mounted.
+// Return TRUE if NTFS boot files are found or if Volume is unreadable,
+// FALSE otherwise. The idea is to weed out non-boot NTFS volumes from
+// BIOS/legacy boot list on Macs. We can't assume NTFS will be readable,
+// so return TRUE if it's unreadable; but if it IS readable, return
+// TRUE only if Windows boot files are found.
static BOOLEAN HasWindowsBiosBootFiles(REFIT_VOLUME *Volume) {
BOOLEAN FilesFound = TRUE;
if (Volume->RootDir != NULL) {
- FilesFound = (FileExists(Volume->RootDir, L"NTLDR") && // Windows XP boot files
- FileExists(Volume->RootDir, L"ntdetect.com") &&
- FileExists(Volume->RootDir, L"boot.ini")) ||
- FileExists(Volume->RootDir, L"Windows"); // Windows 7 ID (imperfect; TODO: Improve)
+ FilesFound = FileExists(Volume->RootDir, L"NTLDR") || // Windows NT/200x/XP boot file
+ FileExists(Volume->RootDir, L"bootmgr"); // Windows Vista/7/8 boot file
} // if
return FilesFound;
} // static VOID HasWindowsBiosBootFiles()
@@ -991,7 +994,7 @@ VOID ScanVolume(REFIT_VOLUME *Volume)
return;
} else {
Volume->IsReadable = TRUE;
- if ((Volume->FSType == FS_TYPE_NTFS) && Volume->HasBootCode)
+ if ((GlobalConfig.LegacyType == LEGACY_TYPE_MAC) && (Volume->FSType == FS_TYPE_NTFS) && Volume->HasBootCode)
Volume->HasBootCode = HasWindowsBiosBootFiles(Volume);
} // if/else
diff --git a/refind/main.c b/refind/main.c
index f474a37..7fb2b73 100644
--- a/refind/main.c
+++ b/refind/main.c
@@ -166,7 +166,7 @@ static VOID AboutrEFInd(VOID)
if (AboutMenu.EntryCount == 0) {
AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
- AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.8.5.6");
+ AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.8.5.7");
AddMenuInfoLine(&AboutMenu, L"");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2015 Roderick W. Smith");
@@ -1001,12 +1001,12 @@ VOID SetLoaderDefaults(LOADER_ENTRY *Entry, CHAR16 *LoaderPath, REFIT_VOLUME *Vo
StriCmp(NameClues, L"bootmgr.efi") == 0 ||
StriCmp(NameClues, L"bootmgfw.efi") == 0 ||
StriCmp(NameClues, L"bkpbootmgfw.efi") == 0) {
- MergeStrings(&OSIconName, L"win", L',');
+ MergeStrings(&OSIconName, L"win8", L',');
Entry->OSType = 'W';
ShortcutLetter = 'W';
Entry->UseGraphicsMode = GlobalConfig.GraphicsFor & GRAPHICS_FOR_WINDOWS;
} else if (StriCmp(NameClues, L"xom.efi") == 0) {
- MergeStrings(&OSIconName, L"xom,win", L',');
+ MergeStrings(&OSIconName, L"xom,win,win8", L',');
Entry->UseGraphicsMode = TRUE;
Entry->OSType = 'X';
ShortcutLetter = 'W';
--
2.39.2