Triple Boot: XP, OSX, Ubuntu

JoeTheZombie

New Member
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?
 

mqudsi

Mostly Harmless
Staff member
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 http://neosmart.net/blog/2007/how-to-install-the-vista-bootloader-on-a-windows-xp-machine/) we can help you get the triple-boot going right away.
 

JoeTheZombie

New Member
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:

mqudsi

Mostly Harmless
Staff member
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:

Code:
# 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
boot
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.
 

JoeTheZombie

New Member
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:
Code:
kernel /boot/vmlinuz-2.6.22-14-generic ro root=UUID=85a14224-4809-430d-98d0-d626816c03d0 quiet splash
 

mqudsi

Mostly Harmless
Staff member
Thanks for sharing that, Joe. Glad you got it to work.
 
Top