From 119f040f3c096ef2ab59f5d02059e9d872047dcd Mon Sep 17 00:00:00 2001
From: srs5694
Originally written: 3/14/2013; last Web page update: -1/6/2012, referencing rEFInd 0.6.3
+1/8/2012, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/configfile.html b/docs/refind/configfile.html index 3b8e271..b45b129 100644 --- a/docs/refind/configfile.html +++ b/docs/refind/configfile.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -92,7 +92,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comMany casual users will be able to use rEFInd without making changes to its settings; in its default configuration, the boot manager automatically detects all the EFI boot loader programs you have on your ESP (or your OS X boot partition, in the case of Macs) and displays icons for them. On Macs, rEFInd also presents legacy BIOS boot options by default. Sometimes, though, you may want to tweak rEFInd's configuration. Sometimes you can obtain your desired results by adjusting the filenames of your boot loaders. Other times, you can edit rEFInd's configuration file, refind.conf, which resides in the same directory as its binary file (refind.efi or whatever you've renamed it).
+Many casual users will be able to use rEFInd without making changes to its settings; in its default configuration, the boot manager automatically detects all the EFI boot loader programs you have on your ESP (or your OS X boot partition, in the case of Macs) and displays icons for them. On Macs, rEFInd also presents legacy BIOS boot options by default. Sometimes, though, you may want to tweak rEFInd's configuration. Sometimes you can obtain your desired results by adjusting the filenames of your boot loaders. Other times, you can edit rEFInd's configuration file, refind.conf, which resides in the same directory as its binary file (refind_x64.efi or whatever you've renamed it).
This example sets a timeout of 5 seconds; loads a custom graphic file called custom.bmp from the directory in which refind.efi resides; scans the drivers and EFI/tools/drivers directories for EFI drivers; uses manual boot loader configuration but also scans for external EFI boot loaders and EFI boot loaders on optical discs; and sets the default boot loader to the first loader found that includes the string elilo. Of course, since this file specifies use of manual boot loader configuration, it's not complete; you'll need to add at least one OS stanza to be able to boot from anything but an external disk or optical drive, as described shortly.
+This example sets a timeout of 5 seconds; loads a custom graphic file called custom.bmp from the directory in which the rEFInd binary resides; scans the drivers and EFI/tools/drivers directories for EFI drivers; uses manual boot loader configuration but also scans for external EFI boot loaders and EFI boot loaders on optical discs; and sets the default boot loader to the first loader found that includes the string elilo. Of course, since this file specifies use of manual boot loader configuration, it's not complete; you'll need to add at least one OS stanza to be able to boot from anything but an external disk or optical drive, as described shortly.
Originally written: 4/19/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/features.html b/docs/refind/features.html index e3496a2..d1cb4d7 100644 --- a/docs/refind/features.html +++ b/docs/refind/features.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/getting.html b/docs/refind/getting.html index 0e720d2..0868692 100644 --- a/docs/refind/getting.html +++ b/docs/refind/getting.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -98,7 +98,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/installing.html b/docs/refind/installing.html index 64a89cf..a38452c 100644 --- a/docs/refind/installing.html +++ b/docs/refind/installing.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -277,13 +277,10 @@ Installation has completed successfully. available, installs it. Note that the "/boot directory" may be on a separate partition or it may be part of your root (/) filesystem, in which case the driver for your root filesystem is - installed. If install.sh detects that the filesystem in - question is ext2fs or ext3fs, it installs the ext4fs driver, which can - handle all three of these filesystem types. This feature is unlikely to - work properly from an emergency system, although it might if you have a - separate /boot partition and if you mount that partition at - /boot in your emergency system, and the ESP at - /boot/efi.In all cases, if the new version includes new or altered configuration file options, you may need to manually update your configuration file. Alternatively, if you've used the default configuration file, you can replace your working refind.conf with refind.conf-sample from the rEFInd zip file. (When using install.sh, this file will be copied to rEFInd's installation directory under its original name, so you can rename it within that directory to replace the old file.
+In all cases, if the new version includes new or altered configuration file options, you may need to manually update your configuration file. Alternatively, if you've used the default configuration file, you can replace your working refind.conf with refind.conf-sample from the rEFInd zip file. (When using install.sh, this file will be copied to rEFInd's installation directory under its original name, so you can rename it within that directory to replace the old file.)
If you're upgrading to rEFInd from rEFIt, you can simply run the install.sh script as described earlier or perform a manual installation. Once installed, rEFInd will take over boot manager duties. You'll still be able to launch rEFIt from rEFInd; a rEFIt icon will appear in rEFInd's menu. You can eliminate this option by removing the rEFIt files, which normally reside in /EFI/refit.
@@ -807,7 +804,7 @@ $ ioreg -l -p IODeviceTree | grep firmware-abi href="http://refit.sourceforge.net">original rEFIt package.Originally written: 3/19/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/revisions.html b/docs/refind/revisions.html index 6fa12ea..90f8b35 100644 --- a/docs/refind/revisions.html +++ b/docs/refind/revisions.html @@ -14,7 +14,7 @@by Roderick W. Smith, rodsmith@rodsbooks.com
-Last Web page update: 1/6/2013
+Last Web page update: 1/8/2013
I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
@@ -92,6 +92,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 11/13/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/themes.html b/docs/refind/themes.html index 43bb32f..ea14a30 100644 --- a/docs/refind/themes.html +++ b/docs/refind/themes.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 4/19/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/todo.html b/docs/refind/todo.html index 4eab151..4be866e 100644 --- a/docs/refind/todo.html +++ b/docs/refind/todo.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/docs/refind/using.html b/docs/refind/using.html index 85c2ed2..f4a091b 100644 --- a/docs/refind/using.html +++ b/docs/refind/using.html @@ -15,7 +15,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.comOriginally written: 3/14/2012; last Web page update: -1/6/2013, referencing rEFInd 0.6.3
+1/8/2013, referencing rEFInd 0.6.4I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
diff --git a/filesystems/fsw_efi.c b/filesystems/fsw_efi.c index 5aa2936..75a29d0 100644 --- a/filesystems/fsw_efi.c +++ b/filesystems/fsw_efi.c @@ -98,7 +98,7 @@ EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid = EFI_FILE_SYSTEM_VOLUME_LABEL_INFO /** Helper macro for stringification. */ #define FSW_EFI_STRINGIFY(x) #x /** Expands to the EFI driver name given the file system type name. */ -#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.6.3 " FSW_EFI_STRINGIFY(t) L" File System Driver" +#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.6.4 " FSW_EFI_STRINGIFY(t) L" File System Driver" // function prototypes diff --git a/install.sh b/install.sh index e5fd604..8268e40 100755 --- a/install.sh +++ b/install.sh @@ -29,6 +29,7 @@ # # Revision history: # +# 0.6.4 -- Copies ext2 driver rather than ext4 driver for ext2/3fs # 0.6.3 -- Support for detecting rEFInd in EFI/BOOT and EFI/Microsoft/Boot # directories & for installing to EFI/BOOT in BIOS mode # 0.6.2-1 -- Added --yes option & tweaked key-copying for use with RPM install script @@ -219,7 +220,11 @@ CopyDrivers() { BootFS=`blkid -o export $BootPart 2> /dev/null | grep TYPE= | cut -f 2 -d =` DriverType="" case $BootFS in - ext2 | ext3 | ext4) DriverType="ext4" + ext2 | ext3) DriverType="ext2" + # Could use ext4, but that can create unwanted entries from symbolic + # links in / to /boot/vmlinuz if a separate /boot partition is used. + ;; + ext4) DriverType="ext4" ;; reiserfs) DriverType="reiserfs" ;; diff --git a/mkcdimage b/mkcdimage index 648da71..4dc8b0b 100755 --- a/mkcdimage +++ b/mkcdimage @@ -86,21 +86,23 @@ mkisofs -A "Bootable rEFInd" -V "rEFInd $Version" -volset "rEFInd $Version" \ # Note: Seems to work on only a few systems, so I'm not distributing # the resulting images yet.... # -rm ../../refind-flashdrive-$Version.* -cat $StartDir/flashparts.img refind-bin-$Version.img > refind-flashdrive-$Version.img -cp $StartDir/README-flashdrive.txt ./ +rm -f ../../refind-flashdrive-$Version.* +let FatSize=`du -s refind-bin-$Version.img | cut -f 1` +let FatSize=($FatSize)+2048 +dd if=/dev/zero of=../../refind-flashdrive-$Version.img bs=1024 count=$FatSize +sgdisk -n 1:2048:0 -t 1:EF00 -g ../../refind-flashdrive-$Version.img +if [[ $? != 0 ]] ; then + echo "sgdisk failed! Exiting!" + exit 1 +fi +dd if=refind-bin-$Version.img of=../../refind-flashdrive-$Version.img bs=512 seek=2048 conv=notrunc + cd .. -mv refind-bin-$Version refind-flashdrive-$Version -zip -9r ../refind-flashdrive-$Version.zip \ - refind-flashdrive-$Version/refind-flashdrive-$Version.img \ - refind-flashdrive-$Version/docs refind-flashdrive-$Version/LICENSE.txt \ - refind-flashdrive-$Version/install.sh \ - refind-flashdrive-$Version/COPYING.txt \ - refind-flashdrive-$Version/CREDITS.txt \ - refind-flashdrive-$Version/README.txt \ - refind-flashdrive-$Version/SHELLS.txt \ - refind-flashdrive-$Version/README-flashdrive.txt -mv refind-flashdrive-$Version/refind-flashdrive-$Version.img ../ +mkdir refind-flashdrive-$Version +ln ../refind-flashdrive-$Version.img refind-flashdrive-$Version +cp $StartDir/README-flashdrive.txt $StartDir/COPYING.txt $StartDir/NEWS.txt \ + $StartDir/CREDITS.txt $StartDir/LICENSE.txt $StartDir/SHELLS.txt refind-flashdrive-$Version +zip -9r ../refind-flashdrive-$Version.zip refind-flashdrive-$Version cd ../ diff --git a/refind.spec b/refind.spec index 152e2ad..7b69472 100644 --- a/refind.spec +++ b/refind.spec @@ -1,6 +1,6 @@ Summary: EFI boot manager software Name: refind -Version: 0.6.3.2 +Version: 0.6.4 Release: 1%{?dist} License: GPLv3 URL: http://www.rodsbooks.com/refind/ diff --git a/refind/config.c b/refind/config.c index 99b9f7a..12375c4 100644 --- a/refind/config.c +++ b/refind/config.c @@ -349,12 +349,15 @@ VOID ReadConfig(CHAR16 *FileName) MyFreePool(GlobalConfig.AlsoScan); GlobalConfig.AlsoScan = StrDuplicate(ALSO_SCAN_DIRS); MyFreePool(GlobalConfig.DontScanDirs); - if (SelfVolume->VolName) { - SelfPath = StrDuplicate(SelfVolume->VolName); - } else { - SelfPath = AllocateZeroPool(256 * sizeof(CHAR16)); - SPrint(SelfPath, 255, L"fs%d", SelfVolume->VolNumber); - } // if/else + if (SelfVolume) { + if (SelfVolume->VolName) { + SelfPath = StrDuplicate(SelfVolume->VolName); + } else { + SelfPath = AllocateZeroPool(256 * sizeof(CHAR16)); + if (SelfPath != NULL) + SPrint(SelfPath, 255, L"fs%d", SelfVolume->VolNumber); + } // if/else + } MergeStrings(&SelfPath, SelfDirPath, L':'); GlobalConfig.DontScanDirs = SelfPath; MyFreePool(GlobalConfig.DontScanFiles); diff --git a/refind/lib.c b/refind/lib.c index 7d6a29a..b4d93a8 100644 --- a/refind/lib.c +++ b/refind/lib.c @@ -1640,7 +1640,7 @@ BOOLEAN IsIn(IN CHAR16 *SmallString, IN CHAR16 *List) { // Implement FreePool the way it should have been done to begin with, so that // it doesn't throw an ASSERT message if fed a NULL pointer.... -VOID MyFreePool(IN OUT VOID *Pointer) { +VOID MyFreePool(IN VOID *Pointer) { if (Pointer != NULL) FreePool(Pointer); } diff --git a/refind/main.c b/refind/main.c index 669cdb8..9f4578f 100644 --- a/refind/main.c +++ b/refind/main.c @@ -128,7 +128,7 @@ static VOID AboutrEFInd(VOID) if (AboutMenu.EntryCount == 0) { AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT); - AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.3.2"); + AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.4"); AddMenuInfoLine(&AboutMenu, L""); AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer"); AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012 Roderick W. Smith"); @@ -1032,7 +1032,7 @@ static VOID ScanEfiFiles(REFIT_VOLUME *Volume) { SplitVolumeAndFilename(&Directory, &VolName); CleanUpPathNameSlashes(Directory); Length = StrLen(Directory); - if ((Length > 0) && (StrLen(VolName) > 2) && (VolName[0] == L'f') && (VolName[1] == L's') && + if (VolName && (Length > 0) && (StrLen(VolName) > 2) && (VolName[0] == L'f') && (VolName[1] == L's') && (VolName[2] >= L'0') && (VolName[2] <= L'9')) VolNum = Atoi(VolName + 2); if ((Length > 0) && ((VolName == NULL) || (StriCmp(VolName, Volume->VolName) == 0) || (Volume->VolNumber == VolNum))) @@ -2018,6 +2018,7 @@ efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) FindLegacyBootType(); if (GlobalConfig.LegacyType == LEGACY_TYPE_MAC) CopyMem(GlobalConfig.ScanFor, "ihebocm ", NUM_SCAN_OPTIONS); + ScanVolumes(); ReadConfig(CONFIG_FILE_NAME); InitScreen(); @@ -2030,7 +2031,7 @@ efi_main (EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) // further bootstrap (now with config available) SetupScreen(); MokProtocol = SecureBootSetup(); - ScanVolumes(); +// ScanVolumes(); LoadDrivers(); ScanForBootloaders(); ScanForTools(); -- 2.39.2