Introduction
This page details how to dual-boot Ubuntu and Mac OS X on an Intel Mac. If you have decided you would like to dual-boot, please visit MactelSupportTeam/AppleIntelInstallation. If you are undecided, please read on.
Why?
Dual-booting allows you to continue running Mac OS-X when you need it, and allows you to boot into Ubuntu when you choose. For some people, this is a good balance and allows you to get more familiar with Ubuntu if you are new.
Why not?
Dual-booting means you have two operating systems on your machine. Both of these take up hard disk space, and Ubuntu will take up disk space that you will no longer be able to access from Mac OS-X.
Virtualise
If you want to install Ubuntu, but do not want to dual-boot, you can virtualise instead. You can run Ubuntu inside VirtualBox, Parallels, and Fusion, however there are the following disadvantages:
- System resources: Since Mac OS X is running in the background, fewer memory and CPU cycles are available for Ubuntu.
Hardware access: Access to hardware can be limited since some hardware cannot be "passed through" a virtual machine. FireWire is an example of this.
NOTE: See Ubuntu on MacBookPro - difficulties with partition tables for an ongoing discussion of the "oddities" you might encounter in setting up partitions.
Technical Information - Special Considerations
The Mac platform is unique in that all boot processes occur using EFI in conjunction with GPT. For this reason, it's a platform where GRUB is not installed to the MBR--because the Mac doesn't use MBR! Apple was ahead of the curve by using EFI and GPT, at the expense of compatibility with many operating systems using the legacy (but easier) bootloading methods.
On the Mac, an EFI bootloader such as rEFIt, is used as the "master" bootloader, which chainloads bootloaders that are installed on the partitions of their respective OSes.
When installing (X)(K)Ubuntu, make sure that the bootloader is installed to the partition where you've installed Linux. For more information, see MactelSupportTeam/AppleIntelInstallation.