Dear Readers of this question

I'm a beginning learner in the wonderful of Linux. Its great, but I got to solve the problem by myserlf so please help me!

Setup: Macbook Pro 8,1, rEFit, GRUB2, Lion, Ubuntu 04.12

Problem: My boot takes too long because I have to go through two bootloaders. rEFit >> GRUB >> then finally Ubuntu! Also, when I try to boot another OS from USB for test (elementary OS Luna), rEFit recoganize it, I select Penguin mark with USB, and GRUB loads and shows only Ubuntu, not OS. My guess is having two bootloader is somehow making computer confuse, Sooooo, do I really need two step bootloader?

One more thing related to booting process. At login screen, I can select desktop environment. I have Unify and Genome desktop both with Cairo dock. When I change desktop environment, it does not correctly load the setting. Its almost like all the themes got mixed up under the hood.

Here is how I end up with my dual-boot setting (which is my main question)

I set up dual-boot machine on MacbookPro 8,1 originally running Lion. I followed the instruction from online article and setup dual boot machine with Lion and Ubuntu 04.12.


The instruction I had made me install rEFit, then install Ubuntu which installed GRUB2 automcally. At very least I did not configure intentionally.

My boot process goes, turn the swith on, select OS from rEFit, then wait, press return at GRUB menu, then wait and enter password at login.

Idealy, I want to get rid of one. I want to keep GRUB for features and avaialble themes, but I know GRUB has issues with Macbookpro 8,1 so I guess I am keeping rEFit unless someone fixed those issues.

How exactly do I proceed?

Best Regard,

  • Uhm... I assume you mean Ubuntu 12.04? Not 04.12? – Thomas Ward Apr 3 '13 at 23:25

The answer is "it depends."

If your GRUB is an EFI version of GRUB, then in theory it can replace rEFIt. Doing so on a Mac is a bit tricky, though, and I don't have step-by-step instructions for doing the job.

Most Ubuntu installations on Macs install Ubuntu in BIOS mode, though, and therefore use a BIOS version of GRUB. In this configuration, both boot loaders are (more-or-less) necessary; rEFIt is unable to boot a Linux kernel directly without jumping through awkward hoops, and the BIOS version of GRUB can't boot OS X.

An alternative you might want to consider is replacing rEFIt, which is no longer being developed, with its fork rEFInd, which is. Unlike rEFIt, rEFInd can boot a Linux (3.3.0 or later) kernel directly, so by installing rEFInd, you can bypass GRUB. The procedure to do this would be:

  1. Install rEFIt from OS X by using its install.sh script.
  2. Manually install the driver for whatever filesystem you use on Linux's /boot partition, or on the root (/) partition if you don't have a separate /boot partition. See the rEFInd documentation for details on its drivers. (You'll just need to copy one file.)
  3. Reboot. rEFInd should appear and show you an option for OS X and at least one for Linux (with a penguin), and one for GRUB (with either a generic icon or an Ubuntu logo). Select the one that boots via GRUB.
  4. In Ubuntu, locate the mkrlconf.sh script that comes with rEFInd and run it with sudo. This creates a configuration file that helps boot the kernel directly.
  5. Reboot. You should now be able to launch the direct-boot option(s) in rEFInd. (The ones with the Linux penguin icons.) If you have problems at this point, you'll have to resolve them, or maybe just use rEFInd as you'd been using rEFIt before.
  6. If everything's working, you can optionally remove the old GRUB entry from rEFInd's menu as follows:
    • If you'd been using a BIOS-mode GRUB, locate the refind.conf file (on the ESP or the OS X / partition, depending on how you installed rEFInd), uncomment the scanfor line, and remove the hdbios option from that line. Note that if you also boot Windows, though, this will remove Windows from the boot options, so you probably don't want to do this if you're triple-booting with Windows.
    • If you'd been using an EFI-mode GRUB, you can either remove its files (probably in /boot/efi/EFI/ubuntu) or use the dont_scan_files or dont_scan_dirs option in refind.conf to restrict scanning for GRUB.

It is possible to use Grub as your only boot manager.

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

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" {

And reload the Grub configuration with

sudo update-grub

All should work

  • First you have to install Ubuntu in EFI mode without refit. – psusi Nov 1 '14 at 13:37
  • This is the best solution! – kelin Apr 30 '16 at 7:09

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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