Menu

0.8.1, OS X: Unable to mount ESP

Anonymous
2014-05-19
2014-10-14
  • Anonymous

    Anonymous - 2014-05-19

    Hi! That's what I get when trying to install to my ESP (because I use WDE):

    XXX:refind-bin-0.8.1 xxl4232$ diskutil list
    /dev/disk0
    #: TYPE NAME SIZE IDENTIFIER
    0: GUID_partition_scheme 256.1 GB disk0
    1: EFI EFI 209.7 MB disk0s1
    2: Apple_HFS Samsung 255.7 GB disk0s2
    /dev/disk1
    #: TYPE NAME SIZE IDENTIFIER
    0: GUID_partition_scheme
    512.1 GB disk1
    1: EFI EFI 209.7 MB disk1s1
    2: Apple_CoreStorage 435.3 GB disk1s2
    3: Apple_Boot Recovery HD 650.0 MB disk1s3
    4: Microsoft Basic Data Windows 76.0 GB disk1s4
    /dev/disk2
    #: TYPE NAME SIZE IDENTIFIER
    0: Apple_HFS Mac OS *434.9 GB disk2
    /dev/disk3
    (removed)
    XXX:refind-bin-0.8.1 xxl4232$ sudo ./install.sh --esp
    Password:
    Installing rEFInd on OS X....
    mount_msdos: /dev/disk0s1 disk1s1: No such file or directory
    Unable to mount ESP! Aborting!\n

    Edit:
    I can mount it manually

     

    Last edit: Anonymous 2014-05-19
  • Roderick W. Smith

    How did you mount it manually? Some people have HFS+ "ESPs," which would explain your symptoms. (I put "ESPs" in quotes because ESPs, by definition, use FAT, so it's not really an ESP if it uses HFS+.)

     
  • Anonymous

    Anonymous - 2014-05-22

    Thank you for your reply! Here's what I did:

    XXX:~ xxl4232$ mkdir /Volumes/esp
    XXX:~ xxl4232$ sudo mount -t msdos /dev/disk1s1 /Volumes/esp
    Password:

    I just checked the format; it's FAT32.

     
  • Anonymous

    Anonymous - 2014-05-22

    As one can see in the diskutil list above, I have a second internal SSD (disk0) instead of the dvd slot drive. Could this cause problems? Its EFI-partition is empty.

     
  • joevt

    joevt - 2014-05-22

    There's a bug in the MountOSXESP() function in the Install.sh script which makes it not work when you have more than one disk with an EFI partition.

     
  • joevt

    joevt - 2014-05-22

    In the Install.sh script replace the line:

    Temp=`diskutil list | grep " EFI " | grep -o 'disk.*'`
    

    with this:

    Temp=$(mount | sed -n -E "/^(\/dev\/disk[0-9]+s[0-9]+) on \/ \(.*$/s//\1/p")
    if [ $Temp ]; then
        Temp=$(diskutil list $Temp | sed -n -E '/^ *[0-9]+:[ ]+EFI EFI[ ]+[0-9.]+ [A-Z]+[ ]+(disk[0-9]+s[0-9]+)$/ { s//\1/p
                q
            }' )
        if [ -z $Temp ]; then
            echo "Warning: root device doesn't have an EFI partition"
        fi
    else
        echo "Warning: root device could not be found"
    fi
    if [ -z $Temp ]; then
        Temp=$(diskutil list | sed -n -E '/^ *[0-9]+:[ ]+EFI EFI[ ]+[0-9.]+ [A-Z]+[ ]+(disk[0-9]+s[0-9]+)$/ { s//\1/p
                q
            }' )
    
        if [ -z $Temp ]; then
            echo "Could not find an EFI partition. Aborting!"
            exit 1
        fi
    fi
    
     
    • Anonymous

      Anonymous - 2014-10-14

      Should the q characters be alone on a line by themselves like that? (sed newb question)

       
      • joevt

        joevt - 2014-10-14

        The script works as is with the q on the next line since the sed command is using single quotes. I think it also works if you wrote it using semi-colons like this

        { s//\1/p;q; }
        

        The first line finds the partition containing root. If it exists, then it searches that disk for the first EFI partition, otherwise it looks at all partitions on all disks and returns the first EFI partition found.

         
  • Anonymous

    Anonymous - 2014-05-23

    Thank you very much!

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.