]> code.delx.au - refind/blobdiff - install.sh
Remove exFAT partitions from boot list under OS X unless they contain
[refind] / install.sh
index 1e87e7c410e04a93d59d13db13ce290470f53217..fd7bb1f9c1236dcd1bc76ce75fbc55fcd1273568 100755 (executable)
@@ -33,6 +33,9 @@
 #
 # Revision history:
 #
+# 0.7.5   -- Fixed bug when installing to ESP on recent versions of OS X
+# 0.7.2   -- Fixed code that could be confused by use of autofs to mount the ESP
+# 0.7.0   -- Added support for the new Btrfs driver
 # 0.6.12  -- Added support for PreLoader as well as for shim
 # 0.6.11  -- Improvements in script's ability to handle directories with spaces
 #            in their names
@@ -247,6 +250,8 @@ CopyDrivers() {
               ;;
          reiserfs) DriverType="reiserfs"
               ;;
+         btrfs) DriverType="btrfs"
+              ;;
          hfsplus) DriverType="hfs"
               ;;
          *) BootFS=""
@@ -404,10 +409,10 @@ MountDefaultTarget() {
 MountOSXESP() {
    # Identify the ESP. Note: This returns the FIRST ESP found;
    # if the system has multiple disks, this could be wrong!
-   Temp=`diskutil list | grep " EFI "`
-   Esp=/dev/`echo $Temp | cut -f 5 -d ' '`
+   Temp=`diskutil list | grep " EFI " | grep -o 'disk.*'`
+   Esp=/dev/`echo $Temp`
    # If the ESP is mounted, use its current mount point....
-   Temp=`df | grep "$Esp"`
+   Temp=`df -P | grep "$Esp"`
    InstallDir=`echo $Temp | cut -f 6 -d ' '`
    if [[ "$InstallDir" == '' ]] ; then
       mkdir /Volumes/ESP &> /dev/null
@@ -632,9 +637,8 @@ FindLinuxESP() {
    fi
    InstallDir=`echo $EspLine | cut -d " " -f 6`
    if [[ -n "$InstallDir" ]] ; then
-      EspFilesystem=`grep "$InstallDir" /etc/mtab | uniq | cut -d " " -f 3`
+      EspFilesystem=`grep "$InstallDir" /etc/mtab | uniq | grep -v autofs | cut -d " " -f 3`
    fi
-   echo "EspFilesystem is '$EspFilesystem'"
    if [[ $EspFilesystem != 'vfat' ]] ; then
       echo "$RootDir/boot/efi 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!"
@@ -691,6 +695,8 @@ AddBootEntry() {
       echo "rename the $Refind binary to the default name (EFI/boot/bootx64.efi"
       echo "on x86-64 systems or EFI/boot/bootia32.efi on x86 systems) to have it run!"
       echo
+   else
+      echo "rEFInd has been set as the default boot manager."
    fi
 } # AddBootEntry()
 
@@ -699,9 +705,11 @@ GenerateRefindLinuxConf() {
    if [[ -f "$RLConfFile" ]] ; then
       echo "Existing $RLConfFile found; not overwriting."
    else
+      echo "Creating $RLConfFile; edit it to adjust kernel options."
       if [[ -f "$RootDir/etc/default/grub" ]] ; then
          # We want the default options used by the distribution, stored here....
          source "$RootDir/etc/default/grub"
+         echo "Setting default boot options based on $RootDir/etc/default/grub"
       fi
       RootFS=`df "$RootDir" | grep dev | cut -f 1 -d " "`
       StartOfDevname=`echo "$RootFS" | cut -b 1-7`