Create a Triple-boot Mac/Windows/Linux system and share/reuse with VMWare...
In just 19 easy steps! (In the basement of your home, to amuse yourself and your friends) 


I setup a triple-boot Mac/Windows/Linux system about 6 months ago with which partitions I shared with virtualization. Unfortunately, I sat on this document too long without finishing it and have forgotten what I did to make it work. At this point, I'm just going to push out my notes as I have them now and hope it still may be helpful to somebody out there. My particular setup is a bit more uncommon which is why I feel I should push this document out there. 

Unlike a traditional triple-boot system, I pushed the envelope a bit further. In addition to having native bootable partitions for each OS, I also made each runnable through virtualization. In my case, I used VMWare Fusion. I also tried Parallels Desktop, but didn't have any success.

I had two separate needs.

1) Be able to run OpenGL with hardware acceleration and the most up-to-date driver support.

2) Be able to develop/compile code on all three operating systems

For #1, I was very disappointed to discover that VMWare doesn't support OpenGL acceleration. Parallels on the other hand does, but I couldn't get Parallels to work. So when all else fails, I need a native partition.

For #2, being able to quickly switch without rebooting is a huge plus for me, so virtualization makes sense here. (I was spending a lot of time writing a new CMake build system for a project.)

Being able to share/reuse the same native partition with the virtual machine is a big plus. Just setting my development environment in Windows was a non-trivial effort. Having to remember to keep a separate native and virtual configuration up-to-date and in-sync for each OS was more than I wanted to deal with.


VMWare Fusion works, but it was a lot of work (though partly Debian Lenny's fault).

I could not get Parallels to work, which is a great disappointment to me. I was rather burned out by VMWare the time I got to trying Parallels so it's not completely fair. But I am completely stuck and have no ideas. If anybody out there has gotten this to work, I want to hear from you.

Finally, I would like to hear and see instructions on doing this with VirtualBox. Since I do not get OpenGL acceleration, I'm not sure if I am getting value out of VMWare for what I'm doing. (I am still on the trial license, but need to make a decision soon.) I'm wondering if VirtualBox is sufficiently good enough for my purposes.


As I mentioned, I took too long to put this together, so this is not going to be a complete how-to. I list what I have and link to what I had referenced. You might think of this procedure as an aggregate list of links (that needs more links).

My triple boot machine is Mac 10.5 Leopard, Windows XP SP3 (32-bit), and Ubuntu 8.10 Linux (64-bit). I originally tried Debian Lenny instead of Ubuntu, but it would not boot through virtualization. I believe the problem is with the version of GRUB Lenny uses.

1) Install rEFit

2) Run bootcamp assistant, create a windows partition (I'll install Windows later)

3) Use Disk Utility to create and resize the partitions to hold the new operating systems.

Hit '+' to create a new partition which will appear in the middle. The first partition is OS X, the last partition is for Windows. The middle partition will hold Linux.

Resize partitions to what you want. (Hint: Selecting different sizes may help you more easily identify which partition is which in the different OS installers.)

Disk Utility will look a little bit like the following picture, but the middle partition may actually be labeled when you do this for real.

Disk Utility resize partition

More info here:

(reboot your system)

4) Install Windows (off Windows CD)

You will need your Windows install CD and the Mac OS X install DVD (for BootCamp drivers).

Put the Windows install CD in your DVD drive and reboot your machine. Boot to the Windows installer from rEFIt.

Install Windows. Make sure you install to the last partition on the disk (i.e. take care not to blow away your OS X partition).

MBR? Don't


5) Update rEFit (synchronizes the legacy MBR partition table with the GPT partition table)

6) Reboot/start Windows to test things. 

If you haven't already, put the Mac OS X install DVD in your drive and install the BootCamp drivers. 

Note: Never use the Bootcamp Control Panel to set startup disk (let rEFIt handle'll have to reenable rEFIt from the Mac side if you do this).

You might also boot back to Mac to test to make sure things are working.

7) Install Linux

Put your CD or DVD for Linux in your drive and boot off the disk to install Linux.

I used Ubuntu after Debian failed me.

No swap partition

set root


Install from the CD. When you get to the disk partitioning page of the wizard, choose Manual. It will give you a list of current partitions. You should be able to recognize the BOOTCAMP (msdos) partition, the Mac OSX partition (the first hfs+) and the Ubuntu blank partition in between. Click on it, and remember its disk name for the last page of the wizard. (e.g. sda3). Click Edit Partition, choose 'ext3' for the file system and '/' for the mount point. Yes, format the partition.

Important!!! Don't just click off the end of the wizard. On Step 6, Finalizing the Installation (or something), there is an Advanced button. Make sure to click on it, and install the boot loader on the correct partition (remember from earlier). Finish the wizard, remove the CD after installing, and reboot.


Following my setup, the partition you want is:


8) Update rEFit

(May or may not be necessary.)

9) Reboot/start Linux

You now have a triple-boot system. Only 10 more easy steps to make it so you can reuse/share these partitions with VMWare Fusion!

10) Get/Install/Run VMWare Fusion

11) Add new VM for Windows

You are going to completely ignore the default first item labeled "Boot Camp" partition. It is useless for our triple boot configuration as far as I know, but can't be removed.

(Picture shows both Windows and Ubuntu already added.)

Picture 2

12) Hack config files

13) Boot Windows through VMWare Run VMWare tools

After you install the VMWare Tools, you can quit and then make some final settings tweaks, such as enabling 3D, sharing, number of CPUs, etc.

Click on "Settings" found at the bottom middle-right of the VMWare Virtual Machine Library Window.

Picture 5

14) Add new VM for Linux

Picture 4

15) Hack config files,/


1. cd into the VMware Fusion app support directory:
cd “/Library/Application Support/VMware Fusion”

2. List the partitions on your physical drive: ./vmware-rawdiskCreator print /dev/disk0

3. Create the raw disk mapping for use in our virtual machine: ./vmware-rawdiskCreator create /dev/disk0 X / ide
(where X is the number of your linux partition, as identified in step 2, is the path to your newly created VM, Ubuntu.vmwarevm is the VM’s container folder, and rdm.vmdk is the name given to the raw disk vmdk you are creating)

4. Finally, add references to your newly created vmdk into your VM’s config file (i.e. Ubuntu.vmx): ide0:0.present = “TRUE”

5. ide0:0.fileName = “rdm.vmdk”



16) Boot Linux through VMWare

17) Install packages for VMWare Tools

The VMWare tools did not work out of the box for me, so to get them installed, you must download new versions of things and build/install them yourself.

ICU is one(?) of the components missing.

18) build/install tools

  73  cd open-vm-tools-2009.03.18-154848/

   74  make

   75  cd modules/linux/

   76  for i in *; do mv ${i} ${i}-only; tar -cf ${i}.tar ${i}-only; done

   77  cd ../../..

   78  mv -f open-vm-tools-2009.03.18-154848/modules/linux/*.tar vmware-tools-distrib/lib/modules/source/

   79  cd vmware-tools-distrib/

   80  sudo ./ 


19) Installing native Nvidia drivers for Linux

I never got around to this step. (Sorry.)

Final notes:

Debian Lenny Problem:

The system would not boot through VMWare. GRUB would fail to find an OS. My original guess was that the problem was that VMWare makes everything look like IDE devices, but the Mac uses SATA. So the device names do not match up (/dev/hda3 vs /dev/sca3) and the boot loader gets confused. I attempted to move everything to use e2label's so device names would not be required, but that failed to work for me. 

After seeing that nobody had this problem with Ubuntu and that my GRUB files and layout differed greatly from GRUB files/layout on an Ubuntu machine I had access to, I concluded that GRUB version was the likely problem. However, this is far from proof. But the end result is that stock Debian Lenny just won't work for this.

Parallels Problem:

I couldn't figure out how to get started with Parallels to use my existing partitions. I tried to do a manual configuration with Parallels and told it to use my Boot Camp partition for Windows XP. Parallels seemed to initially accept this and took a very long time doing a first time initialization of something. Parallels then informed me it would try to boot Windows and I would need to run a setup.exe contained on the VM's CD-ROM if autorun didn't kick-in.

However, Parallels never manages to boot Windows. Instead I see a black console with the message "Missing operating system".

Copyright © PlayControl Software, LLC / Eric Wing