How To Triple Boot (XP, Vista, Ubuntu) With Single Boot Screen


Since Ubuntu 6.10 was released less than a month ago, Windows Vista went RTM and dates for new Ubuntu 7.4 were announced today, I thought I’ll post a tutorial on how to create a single boot screen triple boot system with Windows XP, Windows Vista and Ubuntu Edgy Eft.

A triple boot system isn’t that much different from a dual boot, but since Windows Vista is using a new boot loader called winload it screws up with your typical GRUB installation. And it is pretty annoying going up and down through several boot menus to select your desired operating system. The key is the sequence in which you install the OSes. To give you a rough idea, check the screenshot.

tmb-vmware-snapshots

You can read more on Vista’s boot process on Wikipedia.

I’m writing this blog post under my new development system, but for clarity of screenshots I used VMWare to illustrate the steps.

First you will need OSes themselves, and you are probably couple of days too late to download your free RC2 copy of Windows Vista. Secondly you’ll need your XP installation CD and finally latest Ubuntu or other Linux distribution.

I have two hard drives, one SATA for my system installations and a fat IDE for my personal stuff that I back up once in a while and migrate from old to new systems. The first step is optional but I would highly recommend it as your typical format does nothing to master boot record. And of course it is a nice feeling to start from a clean drive, and by using some free software you can almost make it sterile.

The obvious choice is Darik’s Boot and Nuke, but I must warn you, it’ll take a while to complete. A real while. Simple burn the iso and boot from it.

I would also recommend to disconnect drives you don’t want to erase and put them far away from Murphy’s law.

tmb-dban-boot

Select you drive and choose the quick method by pressing M. As I said before it took me a good 24 hours to complete the quick wipe.

tmb-dban-wipe

There are tons of free utilities that can do DBaN’s basic functions. One of them is Killdisk.

Killdisk Boot Screen

Killdisk set me back only an hour or so.

Killdisk Erase

Now to the usual part. Pop in Ubuntu and click Start or Install.

Ubuntu Installation Screen

It is important to partition you hard drive before starting the installation. You can use a separate free GParted image or other commercial software like Partition Magic or Acronis Disk Director. Or you can use GParted built in to Ubuntu, but don’t partition drive as part of your installation as it will mess up your mount points.

Ubuntu Partitioning from Setup

Simply open a terminal window and type

sudo gparted

Ubuntu GParted

Create new label and create partitions you want. Before acting on this tutorial I would advise to check your current usage to give yourself a rough idea. I use 20 gigs for XP, 10 for Vista and 10 for Ubuntu + 1 for swap.

Another good thing about partitioning under Ubuntu is access to some simple games and utilities like a calculator to make the process a little bit easier.

GParted FAT32 Partition

As you can’t add more than four primary partitions I created one for XP, one for Vista, one for Shared Fat32 partition (so you could read and write straight away) and an extended partition for root and swap partitions.

GParted Extended Partition for Ubuntu

You can see final setup below.

Ubuntu Final Partition Setup

Then simply click Install shortcut on the desktop to run Ubuntu installation and after couple of steps select manually edit partition table.

Your mount points should be available to you. Go ahead, align them by partition name and rename mount points to something more sensible like xp, vista and share.

Ubuntu Final Mount Points

After installation is complete, reboot and login. Open the terminal and backup your MBR. You can use

sudo fdisk -l

to see a list of available partitions and

df

to see your mount points.

Type

sudo dd if=/dev/hda of=/media/share/ubuntu.bin bs=512 count=1

to backup GRUB. Make sure to check it by running

hexdump -C /media/share/ubuntu.bin

and search for some GRUB’s references. If it is blank (zeros) or has NTFS strings in it, you probably should check the if’s hda/sda parameters. You can read more at O’Reilly.

Ubuntu Grub Backup

Next step is to install Windows XP. Select first partition, quick format if you want and complete you typical install.

Selecting Partition for Windows XP

Another optional but recommended step – rename you drives, it will help you during Vista’s install.

Changing HDD Labels

Now we need to add Ubuntu to boot.ini. Press Win+Break key or go to Control Panel > System and select Advanced and Startup and Recovery Settings. Select your default operating system as Windows XP, uncheck “time to display list of operating systems” and change your recovery time option. Then click Edit. I would recommend to move ubuntu.bin somewhere more appropriate, like your Windows folder. Add the following line to boot.ini you opened before.

C:\Windows\ubuntu.bin=”Ubuntu Edgy Eft [Desktop 6.10]”

Adding Ubuntu to boot.ini

The trick to boot from a single boot screen is to use Windows’ bad behaviour of overwriting MBR without asking to our advantage. Vista will pick up entries from boot.ini and add them to it’s winload. Now put your Vista DVD in, reboot and install it.

Windows Vista Install

Select second partition showed as “Vista” (if you renamed disks).

Selecting Windows Vista Partition

After installation is complete search for “cmd” in Start menu and right click on it to run as administrator as it is the only way you can get access to bcdedit. Bcdedit is Vista’s command line “editor” for the boot loader.

Running cmd As Administrator in Vista

Type

bcdedit

to see your settings and note identifier values.

To rename Vista and XP type

bcdedit -set {ntldr} DESCRIPTION “Windows XP [Professional SP2]”

bcdedit -set {current} DESCRIPTION “Windows Vista [Ultimate RC2]”

And change order

bcdedit /displayorder {current} {ntldr}

This way order will be Vista, XP, Ubuntu so you only need to press up or down once not twice. Yes, there is a reason they renamed Unix with “x” :)

Changing bcdedit Settings

Last step is to change some settings from Vista’s GUI. In the same way as XP open Startup and Recovery, set default OS to XP, change display time to 10 and recovery to 5.

Changing Boot Options in Vista

That’s it. Vista boots fine, XP boots because you deselected display time after XP installation and Ubuntu boots GRUB for 2 seconds (press ESC if you want to see it) and automatically loads Ubuntu because it is not aware of XP and does not show you the choice menu as you installed Ubuntu first.

Windows Vista's winload Boot Manager

I hope you enjoyed building your home or development system.

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>