What is the preferred way to install Ubuntu on a MacBook Pro?

I have a MacBook Pro with Mac OS X 10.5. I need a Linux environment some times. So what is the best way to achieve that?

  1. Make it dual boot? (but I don't know if that is possible with a MacBook)
  2. Install VirtualBox and then put Ubuntu on top of it? (But I am not sure if this configuration will be slow, so I need a Linux environment for coding, so it needs to do compiling and debugging and stuff).

6 Answers 6


I have installed Ubuntu 9.04 in a VirtualBox on my MacBook Pro for exactly the same reason (to try out MonoDevelop). The installation is fairly trivial.

First, download the Ubuntu Live CD and VirtualBox. In VirtualBox, create a virtual machine and enable mounting of the CD for the VM. Boot the VM into the Ubuntu Live CD. From there you can very easily install Ubuntu on the VM.

Of course, to allow for a smooth user experience you need to be able being generous with the resources available to the VM. However, as the whole process of getting Ubuntu to run doesn't take much effort it is always worth a try.


I have never tried installing Ububtu on my MacBook Pro, but you can find some relatively easy guides to use in Installing Ubuntu on a MacBook Pro.


You can dual boot Mac OS X and Ubuntu. The way I did it was to install Ubuntu on a separate hard drive. Do NOT install the bootloader on the hard drive Mac OS X is on. I would highly recommend installing on a separate hard drive. Install the bootloader on that hard drive and then install rEFIt. This worked perfectly for me on my MacBook with Mac OS X 10.6.5.


See Installing Ubuntu on a MacBook Pro.

I've had no experience running Ubuntu as a guest on a Mac OS X host, but I'm sure assigning the guest anything over 256 MB of RAM and 64 MB of Video RAM should allow it to run fine.


I had a VM, went to dual boot, then went back to the VM. Why? I found I benefitted more from being booted into Mac OS X while using Ubuntu. VirtualBox is good, but the default settings are not very fast on Mac OS X. Google it to get more information.


I'm currently doing both on my Macbook: I use VirtualBox in Mac OS X to play with different Linux distributions, and use Sabayon Linux on a separate partition for development work. I would say either choice will likely serve. There are, of course, drawbacks to either solution, so here's how I would approach your decision:

  1. What exactly do you need from your Linux server? You mentioned compilation and debugging -- are you compiling Project Euler assignments or the full Linux kernel? Different projects will require different mounts of processing power. I do Flex development and was able to use the Linux version of Flex Builder 3 (Eclipse-based) in VirtualBox on my Mac. It was a bit clunky at times, but I was able to get some solid work done and didn't have to muck with dual-booting.
  2. Will you need to crossover between operating systems? This is my primary annoyance with dual-booting. When I develop something in one system, I often want to use it on the other, and have to reboot. Synchronizing two different operating systems on the same hardware is not terribly fun; I could try and mount the drives in each OS, but I've never had good luck with that.
  3. How hefty of a Linux environment do you need? If you're only going to be using Emacs/Vim for development, can you forgo the X server and just install a terminal-based version of Ubuntu in a VM? Do you need your systems resources to be primarily focused on desktop management? If so, installing on a separate partition (or another hard disk drive, as others have mentioned) will likely be the better option.
  4. How concerned/prepared are you with/for system maintenance? When I first installed Ubuntu on my Mac (9.04, I believe), I regularly experienced wireless and video issues after kernel updates. Most of the time, these were easily resolved; other times, it was a big pain. I eventually moved to Sabayon because it seemed to support the hardware better than Ubuntu (I was shocked, believe me), but I still have instances where I have to fix my wireless drivers. It's not a big pain, IMHO, but it's still wasted time.

Anyway, to sum up, here's what I would suggest:

If your project won't consume a terrible amount of resources (e.g. large compilation tasks) and doesn't necessarily need a hefty display environment, consider a VM. I really like VirtualBox, but there are other options, of course. This also reduces your need for system administration should a distribution update break compatibility with your hardware, and allows you to stay with in Mac OS X.

If your project will need to consume many resources, requires a hefty desktop environment (e.g. KDE Plasma development :), and needs free reign on your hardware, install it in a separate partition and use rEFIt. As others have mentioned: make sure you install your boot-loader on the same partition as your Linux distribution; doing otherwise risks blowing away Mac OS X (which I learned the hard way :)

One other note, if you pick a VM environment: if you need a desktop environment, consider something lighter than Gnome/KDE. I used Openbox when developing in a VM and it worked very well.

  • "what exactly do you need from your Linux server"? in this century GNU/Linux Linux also runs very well as a desktop installation. Apr 2, 2012 at 1:59

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.