8

I want to dual boot my macbook with Arch Linux and thus tried to install rEFInd using the install script, however, after install rEFInd doesn't seem to start at all? Anyone experienced the same issue or have possible solutions on how to fix this?

  • Well. After update today, I also have this problem. Refit and refind both don' t work. I just used install.sh in Mac to install. But no boot manager is ever shown. Any ideas? – xgdgsc Oct 18 '14 at 3:30
  • rEFInd on OS X 10.10 gave me a bunch of strange issues. I acually ended up reinstalling my MacBook to OS X 10.9 and then setteling for that. Have hardly touched OS X since I got reEFInd working again. I edited and unaccepted my answer to make way for a better answer. – Rawa Oct 18 '14 at 3:42

10 Answers 10

6

Just wanted you to know that I found a solution to avoid the now famous "30 seconds wait" ;-)

I have a Mid-2012 MacBook Air. I tried all your mentionned solutions to speed up the boot under Yosemite, but the best one to me was to change the refind folder name on the EFI partition, and also rename the refind file.

So, it gives :

  1. By security, I added all the "drivers_x64" folder by doing ./install.sh --alldrivers at the rEFInd installation

  2. On my EFI partition under Yosemite (stored on/dev/disk0s1), I renamed the "refind" folder to "BOOT"

  3. Inside that folder, I renamed "refind_x64.efi" to "bootx64.efi"

The last 2 steps allowed my Mac to boot instantly on rEFInd, it does no longer wait around 30 seconds to scan the EFI disk!

  • Just tried it. Thanks (maybe the answers should be combined) – Dimitrios Mistriotis Oct 26 '14 at 9:23
  • This should be the answer to a separate question that I'm guessing ANYONE with a macbook pro who uses refind to boot into linux wants to know the answer to. Also a clarification: after doing this, you do not even need to bless bootx64.efi (from OS X) - e.g. if you have a working refind installation on it's own dedicated partition and you do steps 2 and 3, suddenly the amount of time between switching on your computer and seeing the refind menu goes from about 30 seconds to a few seconds. Dang! – Colin Sep 14 '15 at 2:34
5

I fixed the issue by simply adding the --alldrivers when installing refind. Yosemite dual boot works now like before. Fast, and everything is reconized in the refind boot menu.

install.sh --alldrivers
  • I'm rEFInd's developer, and I strongly advise against using the --alldrivers option to install.sh (called refind-install in 0.10.0 and later). That option installs all of the filesystem drivers, but most computers need just zero or one driver. Using all of them runs a serious risk of creating problems, up to and including hanging the computer. The option exists to help build recovery USB flash drives. Recent versions, when run from OS X, install the ext4fs driver if a Linux partition is detected. Chances are it was re-installing per se, not --alldrivers, that fixed your problem. – Rod Smith Dec 7 '15 at 0:52
5

I'm going to reanswer my own question here because there is now an official solution from rEFInd, and thus I believe this is the right way to go about this.

The official guidelines can be found on the rEFInd web site.

Following are the steps presented there:

  1. Boot to OS X, using whatever means is available to you. Holding Option (or Alt) while powering up will normally give you Apple's own boot manager, which should enable you to boot to OS X. If your rEFInd installation is currently starting but is not showing an OS X option, skip to step #7; but if rEFInd isn't starting, follow steps #2–7.
  2. If you've made changes to /EFI/refind/refind.conf, back it up.
  3. Remove the /EFI/refind directory tree; it's useless now, and its presence may cause confusion.
  4. Re-install rEFInd, as described in the Installing rEFInd page; but be sure to use the --esp or --ownhfs device-file option. The latter is preferable, but requires either a dedicated partition for rEFInd or an HFS+ data partition that is currently not bootable.
  5. Ensure that the partition to which you've installed rEFInd is mounted. The details depend on how you installed it:
    • If you installed rEFInd to your ESP, typing mkdir /Volumes/esp followed by sudo mount -t msdos /dev/disk0s1 /Volumes/esp will probably work, although in some cases your ESP won't be /dev/disk0s1, so you may need to change this detail.
    • If you used the --ownhfs device-file installation option, the target partition should already be mounted, normally somewhere under /Volumes. If not, locate it and mount it with Disk Utility or mount.
  6. If you backed up your refind.conf file, you can now copy it over your new refind.conf file. You should copy the file to either /Volumes/esp/EFI/refind/ (if you used --esp and mounted the ESP at /Volumes/esp) or to /Volumes/Mountpoint/System/Library/CoreServices/ (if you used a dedicated HFS+ volume; note that Mountpoint will be the name of the volume).
  7. Edit your new refind.conf file, which should be located as described in the previous step. In your favorite editor, locate the dont_scan_volumes line, which is commented out with a # symbol at the start of the line by default. Uncomment this line and remove the "Recovery HD" item from the line. Some users report that they need to enter one or two dummy entries, as in dont_scan_volumes foo,bar, to get it to work.
1

I figured out a workaround for using rEFInd in Yosemite, but please note that it is probably not the best solution.
I think the reason of rEFInd is no longer working under Yosemite is because the root partition of the system does not reside in a physical partition any more, thus rEFInd will not be able to be recognized at the boot stage. So, I tried install rEFInd manually into the EFI partition, and it worked.

Here is the procedure:
1. Open Disk Utility, select EFI partition and mount it. Normally, the mount point should be /Volumes/EFI
2. I assume you have already installed rEFInd by running the install.sh script using default arguments (rEFInd should be install at /EFI/refind). Open terminal, type following commands: cp -r /EFI/refind /Volumes/EFI/EFI/ sudo bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/refind/refind_x64.efi

This workaround has downsides. On my Macbook Air, it took 40 seconds until the rEFInd menu showed up and Yosemite partition wasn't recognized and listed in the menu, only my linux bootloader(grub2efi) and recovery partition were detected.
If you want to boot into Yosemite, you have to hold down Option during startup, and choose your Yosemite partition.

Another workaround is using a USB drive to boot a third party bootloader.
For example, check out this page. You could create a standalone GRUB2 EFI image, then put it at /EFI/boot/bootx64.efi of your USB drive partition (FAT32 format).
Hold down Option during startup, your USB drive will show as EFI boot. you can use it boot into a temporary GRUB2 menu, using command like configfile (gpt0,X)/boot/grub/grub.cfg (where X is your Linux partion or your /boot partition) will get you your old GRUB2 menu, then it should work as usual.

1

Actually the link provided by Samantha seems to give the easiest solution:

diskutil list

and you will see something like:

$diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         175.6 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data                         70.3 GB    disk0s4
   5:                 Linux Swap                         4.2 GB     disk0s5
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           *175.3 GB   disk1
                             Logical Volume on disk0s2
                             41AF7850-5594-4959-A135-582BF79FDE46
                             Unencrypted

Then use:

diskutil corestorage revert /dev/disk1

And reboot, refind now works again.

1

Yes it does, because rEFInd doesn't work because of corestorage. The entire disk, that means all partitions, is/are managed as a single volume, and rEFInd is lost in this "several partitions on multiple drives as a single logical volume".

So you have to choose between corestorage performance, or rEFInd.

Your options:

  • install rEFInd into an another HFS partition
  • install into the ESP one

See the rEFInd homepage for it now.

1

MacBook (13-inch, Late 2009), Yosemite 10.10, have Whole-Disk Encryption (FileVault) enabled. Have installed rEFInd like that:

./install.sh --esp --alldrivers 
mkdir /Volumes/ESP
sudo mount -t msdos /dev/disk0s1 /Volumes/ESP

And in refind/refind.conf I've located dont_scan_volumes directive and made it look like:

dont_scan_volumes foo,bar 

rEFInd boots OS X and recovery successfully :) But I still cannot boot from Windows 7 setup flash drive :( I get errors:

Error: Not Found from LocateDevicePath
....
Error: Not Found from LocateDevicePath
Error: Load Error while (re)opening our installation volume
The firmware refused to boot from the selected volume.

I solved this problem by downloading an almost-installed snapshot of Windows and cloning it to the required partition and then just booting to it and finishing the setup.

0

On Yosemite, rEFind needs to be installed to the EFI System Partition (ESP), which reside on /dev/disk0s1.

You could either do this manually by using bless (like in Meow's procedure), or you could simply use the --esp option when installing rEFind, like so: ./install --esp.

The problem with this, like noted in rEFind's documentation, is that the boot process becomes very sluggish - it takes a while before the rEFind menu appears.

0

Using the --eas option when running the install.sh worked like a charm for me!

-2

I have a MacBook Pro mid-2012 and just upgraded to Yosemite from Mavericks. Could not see the rEFInd and found the solution here.

  • 1
    Welcome to *nix.SE! For the sake of having the instructions themselves on this page (and to avoid things like link-rot), please consider posting the most important information, or instructions themselves, here in your post. – HalosGhost Oct 19 '14 at 17:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.