Triple Boot: XP, OSX, Ubuntu

Right now I have three separate HDDs. Each drive contains an OS. To launch OS, I plug in the drive I want to use. This really bites. I hope I can use EasyBCD to have all three drives installed in my machine, and then have a nice menu to select which OS I want to launch at startup.

Is EasyBCD the right tool to do this? I'm not sure, because I do not run Vista. Any suggestions on how to proceed?
Hi Joe, welcome to NeoSmart Technologies.

EasyBCD would be the perfect tool to use, except you don't have the Windows Vista bootloader installed - instead you have the XP Bootloader, the OS X (Darwin) Bootloader, and GRUB... Unfortunately, no Vista bootloader.

If you get the Vista bootloader installed (see we can help you get the triple-boot going right away.
OK. I copied the vista boot files off my laptop and used easyBCD to install it. It worked. When I restart my computer, I get into WindowsXP still.

I plugged in my Linux drive, and booted into WindowsXP. I started easyBCD 1.7 and added a new entry for Linux like this:

Type: Grub
Name: Ubuntu 7.1.0 (Gutsy)
Drive: Drive 0 - Partition 0 (Linux Native - 65GB)

I then restart the computer and I see the new entry for Ubuntu. But, when I select it I get thrown right back to the vista bootmenu. I'm guessing this is because I was using a separate drive for Linux before, so Grub is installed in the MBR of drive 0 rather than in the partition.

So, I boot into windows, startup up easybcd, remove my linux entry, then re-add it, only this time selecting the "grub is not installed" option. I rebooted, selected linux, and grub started up with several entries for ubuntu. The problem is, when I select one to boot, I get an error.

error 17: file not found

My HDDs are setup like this:

Drive 0 - Linux
Drive 1 - Data
Drive 2 - Windows XP (also the default boot drive)

Edit: Ok, so I played with it some more. I uninstalled neogrub, and installed grub to the partition as described in the wiki. I then re-added my ubuntu, but I get the same thing at the boot menu... it just comes right back to the boot menu instead of booting ubuntu.
Last edited:
Hi Joe,

Sounds like because Linux was installed under a different configuration your menu.lst has been messed up.

Your best option would be to remove the Linux entry in EasyBCD, and add a NeoGrub entry instead. Make the NeoGrub configuration file look something like this:

# NeoSmart NeoGrub Bootloader Configuration File
# This NeoGrub menu.lst file should be located at \NST\menu.lst of the boot drive.
# Please see the EasyBCD Documentation for information on how to create/modify entries

find --set-root /boot/vmlinuz-2.6.17-10-generic
kernel /boot/vmlinuz-2.6.17-10-generic ro root=/dev/hdb2
initrd /boot/initrd.img-2.6.17-10-generic

Just replace the 2.6.17-10-generic with the correct version number from your linux, and replace /dev/hdb2 with what linux calls its root drive.
I finally go this working after a long time, and thought I'd report what worked. The main problem is for some reason Ubuntu keeps changing the device numbers around, probably because sometimes I have an external HDD or a USB key plugged in. Because of this, sometimes /dev/hdb2 wouldn't exist.

I needed to find the UUID of the partition that had Ubuntu installed on it. I could find this by booting with the Linux live cd, selecting the partition and viewing it's properties. On one of the tabs, it lists the UUID.

I finally got everything working with neogrub by changing the kernel command like this:
kernel /boot/vmlinuz-2.6.22-14-generic ro root=UUID=85a14224-4809-430d-98d0-d626816c03d0 quiet splash