Lost ability to use rEFInd dual boot after updating to Yosemite OSX 10.10
Solution 1
I fixed this issue by using efibootmgr
. If you cannot run Ubuntu, use a live version of it.
First make sure you have efibootmgr
installed
sudo apt-get install efibootmgr
Then check the partitions from which EFI can boot
$ sudo efibootmgr
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0000,0082
Boot0000* ubuntu
Boot0080* Mac OS X
Boot0081* Mac OS X
Boot0082*
BootFFFF*
In my case it lists 4 partitions. Boot0000
is the Ubuntu partition where GRUB is installed; by default I want to boot this partition.
I found out that Boot0080
is the recovery partition of the old Mavericks installation, while Boot0081
is the Yosemite recovery partition. The partition where Yosemite is actually installed, in my case, is Boot0082
.
GRUB is not able to load Mac OS X directly, but I can configure EFI to load the Mac OS X partition when GRUB exits.
So I've run
sudo efibootmgr -o 0000,0082
Which, to recap, means Boot0000
, where GRUB is installed, will be run first, then if you exit grub (by pressing c end then typing the command exit
) you can boot into Mac OS X.
To make the process of booting Mac OS X more comfortable you can add an entry to the GRUB boot menu which exits and thus starts Mac OS X. Just edit /etc/grub.d/40_custom
and append the following
menuentry "Exit to Max OS X" {
exit
}
And reload the GRUB configuration with
sudo update-grub
All should work.
Solution 2
I recommend this (now deleted) answer on Stack Overflow (possibly also available via Wayback machine and if not here is a screenshot of it) by Ahmad Afif. The answer uses material from this Linux Mint Forums tutorial, which explains that
- Mac boots Mac OS by default. We need it to boot our GRUB menu instead.
- GRUB detects Mac OS but doesn't know how to boot it, so we need to fix that as well.
To fix it, make a live USB and boot from it, then fix the boot order.
Install and run efibootmgr
:
sudo apt install efibootmgr
efibootmgr
One line of the output shows the BootOrder
, and below that line is a key showing the names of each code, for example
BootOrder: 0080, 0000, ...
Boot0000* ubuntu
Boot0080* Mac OS
...
To change the order to boot 0000
before 0080
, you can use this command:
sudo efibootmgr -o 0,80
Run efibootmgr
again to check that the BootOrder
has changed.
Now GRUB will boot first, and we can use it to boot Ubuntu (or Mint in the case of the tutorial), or, to boot OS X, press esc and type exit
. To avoid the latter step in future, it is often sufficient to boot into Ubuntu and run this command:
sudo update-grub
Related videos on Youtube
Camilo Riviere
Updated on September 18, 2022Comments
-
Camilo Riviere over 1 year
I'm no longer able to get access to rEFInd dual boot manager after updating to Yosemite, any ideas? Thank you.
-
David Foerster over 9 yearspossible duplicate of How can I repair grub? (How to get Ubuntu back after installing Windows?)
-
-
lkahtz over 6 yearsThis saves my day!