From: srs5694 Date: Tue, 21 Jun 2016 18:24:31 +0000 (-0400) Subject: Fix for refind-install script to handle a wider range of disk devices, X-Git-Url: https://code.delx.au/refind/commitdiff_plain/508d89056f8675d0d664493fc82a574119e6f60a Fix for refind-install script to handle a wider range of disk devices, beyond /dev/[sh]d? devices. --- diff --git a/NEWS.txt b/NEWS.txt index 7da2c69..219353a 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,3 +1,9 @@ +0.10.4 (?/??/2016): +------------------- + +- Tweaked refind-install to do a better job of detecting disks other + than /dev/sd? and /dev/hd? devices. + 0.10.3 (4/24/2016): ------------------- diff --git a/debian/control b/debian/control index 4a9c48c..83be274 100644 --- a/debian/control +++ b/debian/control @@ -10,13 +10,13 @@ Vcs-Git: git://anonscm.debian.org/collab-maint/refind.git Package: refind Architecture: amd64 i386 arm64 -Depends: debconf, efibootmgr, openssl, sbsigntool, parted, ${misc:Depends} +Depends: debconf, efibootmgr, openssl, sbsigntool, parted, util-linux, ${misc:Depends} Description: boot manager for EFI-based computers A graphical boot manager for EFI- and UEFI-based computers, such as all Intel-based Macs and recent (most 2011 and later) PCs. rEFInd presents a boot menu showing all the EFI boot loaders on the EFI-accessible partitions, and optionally BIOS-bootable partitions on Macs and BIOS boot - entries on UEFI PCs with CSMs. EFI-compatbile OSes, including Linux, + entries on UEFI PCs with CSMs. EFI-compatible OSes, including Linux, provide boot loaders that rEFInd can detect and launch. rEFInd can launch Linux EFI boot loaders such as ELILO, GRUB Legacy, GRUB 2, and 3.3.0 and later kernels with EFI stub support. EFI filesystem drivers for ext2/3/4fs, diff --git a/refind-install b/refind-install index b28a79e..19da6a0 100755 --- a/refind-install +++ b/refind-install @@ -39,6 +39,7 @@ # Revision history: # +# 0.10.4 -- Improved handling of disks (other than /dev/[sh]d? disks). # 0.10.2 -- Improved Secure Boot detection in Linux, fixed --usedefault in OS X, # and fixed bug that could cause mountesp to be installed as a FILE # called /usr/local/bin in OS X. @@ -1052,13 +1053,15 @@ ReSignBinaries() { # and EspFilesystem the filesystem (always "vfat") FindLinuxESP() { echo "The ESP doesn't seem to be mounted! Trying to find it...." + local Name local Drive local PartNum local TableType local DmStatus local SkipIt local Dmraid - for Drive in `ls /dev/[sh]d?` ; do + for Name in `lsblk -r | grep disk | cut -f 1 -d " "` ; do + Drive="/dev/$Name" SkipIt=0 Dmraid=`which dmraid 2> /dev/null` if [ -x "$Dmraid" ] ; then @@ -1109,7 +1112,13 @@ FindMountedESP() { if [[ $EspFilesystem != 'vfat' ]] ; then echo "$RootDir/$InstallDir doesn't seem to be on a VFAT filesystem. The ESP must be" echo "mounted at $RootDir/boot or $RootDir/boot/efi and it must be VFAT! Aborting!" - exit 1 + if [[ -d /sys/firmware/efi ]] ; then + exit 1 + else + echo "The computer appears to be running in BIOS mode and has no ESP. You should" + echo "create an ESP, and ideally boot in EFI mode, before installing rEFInd." + exit 0 + fi fi echo "ESP was found at $InstallDir using $EspFilesystem" } # FindMountedESP diff --git a/refind.spec b/refind.spec index 6bf7170..c3849cd 100644 --- a/refind.spec +++ b/refind.spec @@ -37,7 +37,7 @@ A graphical boot manager for EFI- and UEFI-based computers, such as all Intel-based Macs and recent (most 2011 and later) PCs. rEFInd presents a boot menu showing all the EFI boot loaders on the EFI-accessible partitions, and optionally BIOS-bootable partitions on Macs and BIOS boot -entries on UEFI PCs with CSMs. EFI-compatbile OSes, including Linux, +entries on UEFI PCs with CSMs. EFI-compatible OSes, including Linux, provide boot loaders that rEFInd can detect and launch. rEFInd can launch Linux EFI boot loaders such as ELILO, GRUB Legacy, GRUB 2, and 3.3.0 and later kernels with EFI stub support. EFI filesystem drivers for ext2/3/4fs,