2011-08-08

Dual-boot: Lion and Ubuntu

It had been a very long time since I set a system up to boot more than one operating system, and I was itching for an excuse to play with Linux: what better way to scratch that itch than to install Linux on my MacBook Pro?

Game Plan

Running Linux on an Intel Mac involves what is probably one of the most complicated ways for any modern computer to load system software. (Sounds like fun, right?) Apple's EFI firmware is started directly by the hardware, then loads the rEFIt boot menu, which allows OS selection. Although Intel Mac disks are all GPT-based, selecting Linux causes rEFIt to boot from an MBR compatibility block, which contains a GRUB installation. GRUB then displays a kernel selection menu, and finally boots Linux when a selection is made.

I started my process by following an article by a guy who refers to himself only as Scott. He doesn't say anything that is incredibly clever or insightful, but he clearly outlines what looks like a nice, conservative process for dual-booting.

Bad Luck, Good Luck

Unfortunately, as soon as I rebooted my system for the first time, immediately following the shrinking of my HFS+ partition by Boot Camp Assistant, I was greeted by a very plain gray-on-black screen informing me that there were no bootable volumes in my system (or something to that effect). At this point, I hadn't even done anything outside of Apple-supported Boot Camp territory. To make things even more interesting, the Snow Leopard install media which came with my computer wouldn't boot - it claimed my processor was unsupported.

By an unusual stroke of luck, I happened to have burned a rEFIt CD earlier, and using that, I successfully booted my Lion system again. With OS X running, I used the Startup Disk tool in System Preferences to make my system bootable again. At this point, I'm more or less back at square one, except I have a chunk of unpartitioned space at the end of my hard disk. I'm also starting to notice intermittent weirdness (long delays/hangs) booting OS X, which caused me some small amount of panic, but this issue seemed to resolve itself after a while.

rEFIt Installation

Although there is a convoluted bug report which states that rEFIt is unable to boot Lion, I wanted to give it a try anyway; after all, it worked perfectly when loading rEFIt from the CD.

My first few attempts, using the recommended rEFIt installer package, yielded no results whatsoever; although the files were installed under /efi as advertised, I couldn't conjure up a menu no matter how many times I rebooted.

Next I tried the manual installation process, and voila! Happy boot menu is happy. My guess is that, for some reason, the rEFIt installer package is not yet compatible with Lion.

Linux Installation

My first installation attempt was with a Debian GNU/Linux AMD64 disc. I was pleased to see it boot, but also was not particularly surprised when it completely failed to detect any sort of network hardware. I've never been a big Ubuntu fan, but I switched over to an Ubuntu 11.04 disc at this point - after all, this sort of thing is exactly why that company exists.

From this point on, everything went relatively smoothly. I ran through the Ubuntu 11.04 installation normally, and was immediately able to select between Lion and Ubuntu from the rEFIt boot menu.

I did reinstall Ubuntu two or three times; at first I had used the standard 64-bit installer, then I discovered the "Intel Mac" version of the installer. I was hoping to avoid the need for an ugly old MBR on my shiny new GPT disk, but I didn't actually see any difference at all between the two versions. One day, I will revisit this issue and make my system pure EFI/GPT again, but for now, everything is working quite well.

2 comments:

  1. I followed your advice with the manual refit install, everything went smooth. Lion and Ubuntu 10.04 LTS. My rEFIt would only come up sporadically, but #sudo /efi/refit/enable-always.sh in terminal and I was good to go.

    ReplyDelete
  2. mhh if I add to the due a Bootcamp W7 partition? it can work?

    ReplyDelete