So it would seem triple-booting Vista, XP, and Ubuntu isn’t as easy as I thought it would be. If you’re not a technologically-oriented person (or if you get bored after reading three paragraphs), you’d better give this post a wide berth. Also note that this is not really a tutorial. I simply stumbled through this situation all on my own and take no responsibility for the pain you might feel when you nuke your computer and hit your head repeatedly on the keyboard because you did what I did.
All right, so, because I’m a geek, I decided to take it upon myself to put not one, not two, but three operating systems on my laptop. It started when I got a new hard drive and completely wiped all the Dell crap off of it so I could install Vista and Ubuntu. I couldn’t do this before because I had some weird partitioning going on with my hard drive due to the presence of Dell MediaDirect. As such, I couldn’t make enough partitions (one primary for the OS and one extended/logical for swap space) to put Linux on. After nuking MediaDirect, I was able to get things started. This was easy. Vista was already installed, so all I had to do was make some space and pop in the Ubuntu Live CD. It installed GRUB (the Linux bootloader), which automatically picked up Vista and let me boot to it just fine.
Things went great for a while until I thought to myself “Hey, why not put XP on this computer, so I can play games that don’t work in Vista?” I know, strange reasoning, but it made sense at the time. Vista isn’t the best operating system for gaming just yet. Some games are incompatible, while others suffer from framerate losses. XP is the overall better gaming OS since it’s got fully mature driver and software support. I had enough room, so I thought I’d give it a try. All I’d have to do was shrink a partition, install XP to that partition, add it to GRUB, and off I’d go. Easy, right? No, of course not.
This is, basically, how my partitions were laid out on the disk:
Vista – Unallocated (soon to be XP) – Ubuntu – Swap
I backed up all my data to an external drive and set about getting XP installed. First I shrank the Vista partition to make room for XP. I then restarted and began installing XP. This is where I ran into the first interesting bit. Not really a problem, but still kind of weird. Because there were three other partitions on the disk, XP assigned them all drive letters. Vista was C, Ubuntu was E, and the swap was F. This meant my XP partition would be getting the letter G, which I knew was going to make life hard later on (since some applications will always install to the C drive in Windows).
Installation went fine (if you don’t count me forgetting the CD key, which was stored on the Vista partition of my computer; I later remembered I had it stored online as a backup). When my computer restarted, it didn’t show GRUB and went straight into XP, which I had anticipated. Windows always overwrites the Master Boot Record (MBR) of your hard drive without warning, replacing any bootloaders that might be there (such as GRUB or LILO, another Linux bootloader) with its own. So, for the time being, I couldn’t boot into Vista or Ubuntu. Luckily, I made a Super GRUB CD a while back just for things like this. This little gem will let you do a number of maintenance-related things, such as booting OSes straight from their respective partitions or repairing bootloaders (either GRUB/LILO or Windows versions). After checking to make sure XP had installed fine (albeit with no driver support for anything), I restarted with the Super GRUB CD and reinstalled GRUB in the MBR of my hard drive.
The GRUB menu came up as it always did, with Ubuntu and Vista. I selected Ubuntu but it wouldn’t start. I realized that, because I had put the XP partition after my Vista partition (the first one), I had move Ubuntu from the second partition to the third, which mean the menu.lst file which powered the GRUB menu was pointing to the wrong partition to boot Ubuntu. Thankfully, GRUB is highly configurable, so I was able to temporarily edit the menu to point to the right partition for Ubuntu and boot it up.
The first order of business in Ubuntu was fixing the menu.lst file to reflect changes in partitions as well as to add XP to the bottom of the file. Everything looked fine, so I saved the file and rebooted once more. This is where things got ugly. Ubuntu would boot up fine. However, selecting the XP option gave me an error and the Vista option booted me into XP. Whoa.
It turns out that XP installed its own bootloader, which overwrote both GRUB and the Vista loader. So, by booting into the first partition, (hd0,0) in GRUB, I wasn’t booting into Vista as I thought I was. A simple boot repair with the Vista installation DVD reinstalled the Vista loader, allowing me to boot up in Vista through but now I couldn’t get to XP. You can imagine my frustration at this point. Some research while in Vista made me think that I couldn’t use GRUB to boot up everything. I’m sure it was possible, but I simply could not figure out what I needed to do. So I decided to run everything through the Vista bootloader by using EasyBCD to configure it
This worked fine for both Vista and XP (after I put the ntldr file from the XP install CD into the root of the XP partition), which both booted up through the Vista loader once I had removed GRUB using the Super GRUB CD. But, if you haven’t already guessed, I couldn’t get to Ubuntu. Foiled again! I’m still in the midst of figuring this latest problem out. For some reason, I can’t seem to get Ubuntu to boot through configuring EasyBCD, which is supposed to allow Linux to be added to the Vista bootloader. I was getting an error (fixed by correcting a typo in the bootloader entry for Ubuntu) and now I’m simply getting a blank screen whenever I try to boot to Ubuntu. Argh.
So, if you are ever thinking of triple-booting your computer, follow the lovely instructions laid out by Ilya Hevnikov, which should save you the kind of grief I’ve been experiencing.
UPDATE: Somehow, I managed to get Ubuntu to load off the Vista bootloader. I don’t quite know how, but it may have had to do with updating the version of EasyBCD I was using. Or something like that. I know, I’m so helpful. Anyways, I’m now in triple-booting nirvana, having even installed the Ext2 IFS for Windows, which allows me to access my Linux partition from both WinXP and Vista. Plus, I can fully access my Windows partitions from Linux using NTFS drivers there. Excellent.
UPDATE 2:: Well, it appears that the blog article I linked to in the last paragraph of the article is no longer existent, except within the bowels of the Wayback Machine. Lucky you. If that still doesn’t work, here’s the short version: install XP, install Vista, install Ubuntu. If you do it in that order. Some tweaking will be in order, but everything should work.
