Dual-booting XP and Vista (my way)

If you want both Windows XP and Windows Vista on your computer, you can set up a dual-boot configuration easily enough. But the default configuration may not be suitable for your needs. For example, I wanted to have XP and Vista installed on one hard drive, with XP being on a smaller partition which I planned on eventually using for a different operating system. However, setting up this dual-boot proved to be somewhat more complicated than I had imagined.

Various methods of dual-booting XP and Vista

The two most common methods for dual-booting XP and Vista are outlined below:

Method 1: Vista installed first

Install Vista, install XP, and repair Vista's boot loader. This method accomplished what I needed, except that XP labeled its boot drive as drive E:\ (not C:\), and it was impossible to change this. This would cause problems with various programs that assumed that C:\ was the drive that Windows was installed on. No go.

Method 2: XP installed first

This is the method I tried after I figured out that the other one didn't work for me. I installed XP on the smaller partition, and then I installed Vista on the larger one. However, this didn't work for me, because Vista installed its boot files on the XP partition.

Why is this bad? It doesn't matter to a good amount of people, but for me, this caused problems. If I wanted to delete the XP partition at some point in the future, I didn't want to go through the hassle of repairing Vista. Also, it didn't seem quite right in my opinion.

What I needed

I faced a dilemma. I wanted Vista's boot files on Vista's partition, and I wanted XP's main drive to be labeled C:\. But how could I do this?



In this tutorial, it is assumed that you have a single hard disk in your computer, and your computer meets Windows Vista's system requirements. If you have more than one hard drive, you will need to disconnect all drives but the one on which you will be installing XP and Vista. You need a bootable, unmodified Windows Vista DVD and Windows XP CD. It is also assumed that you have a certain degree of computer literacy.

Planning your disk configuration

The first thing to do when preparing a dual-boot is to plan how you will configure your hard drive. For a dual-boot configuration, you need 2 partitions for your operating systems (you may have more then 2 partitions if you want to keep your data files on another partition, for example).

It doesn't matter how big you make each partition (XP and Vista) will be, but it is a good idea to think carefully about the future when partitioning your drive. It is fairly difficult to change this configuration once you've installed Windows. The order of partitions is somewhat more important: if you put the XP partition after the Vista partition, you can later delete it and extend the Vista partition to reclaim the space, but if you reverse this order, you will not be able to extend the Vista partition.

For this tutorial, I will be using a 500GB hard drive (465GB actual capacity). I have partitioned the disk as illustrated below:

[433GB Primary] [32GB Primary]

Partitioning the disk

I happened to have a second installation of Windows XP on a separate hard drive, and I thus used Windows XP's diskmgmt.msc. Or, you may use your favorite partitioning tool (GPartEd, for example). I will not cover the usage of these tools in this tutorial. You may use Windows PE (Windows Preinstallation Environment) and diskpart on the Vista DVD; this is covered below.

Using the Vista DVD

Boot from the Vista DVD and click "Next". Click "Install Now". You will be asked for a product key. Leave the field blank (DO NOT enter your product key at this time). Now, press Shift+F10 to open a Windows PE command prompt. Type diskpart and then list disk.

NOTE: Despite the fact that you're booting from the Vista DVD, now is NOT the time to install Vista. The sole purpose of booting from the Vista DVD is to access Windows PE and the tools that come with it, specifically diskpart.

If all goes well, you should see something like this:

Disk ###  Status      Size     Free     Dyn  Gpt
--------  ----------  -------  -------  ---  ---
Disk 0    Online       466 GB   466 GB

NOTE: If you see more than one disk (Disk 1, Disk 2, etc.), turn off your computer and physically disconnect those disks.

Type select disk 0 to select the disk, and clean to delete any existing partitions on it.

Keep in mind that when you create a partition in diskpart, you must enter its size in megabytes. To calculate the size of the Vista partition that you need to enter in the following step, take the size (in gigabytes) and multiply by 1024. A calculator will definitely help... but so many devices (cell phone, MP3 player, etc.) now have calculators, it shouldn't be a problem. In my case, I calculated 433 * 1024 to arrive at 444416.

Type create partition primary size=x (replacing x with the figure you arrived at earlier) to create the Vista partition. Type create partition primary (not providing the size= parameter tells diskpart to use all available unpartitioned space) to create the XP partition. Verify that the steps worked by typing list partition.

Now, we must make the XP partition active. This step is important, as the Windows XP Setup will install XP onto the active partition. Type select partition 2, and then type active to make it active. Type exit to exit diskpart.

Remove the Vista DVD from the drive, insert the Windows XP CD, and restart your computer.

Installing Windows XP

Insert the XP CD and boot from it. When prompted to select the location to which to install Windows, choose "C: Partition2".

WARNING: If the partition you created for XP is not listed as C:, abort the installation, invoke diskpart from the Vista DVD, and make sure that the partition is marked as active.

Format the partition as NTFS. (It doesn't really matter as to what filesystem you use, but note that you cannot format a partition larger than 32GB as FAT32 using Windows XP Setup.) Proceed with Windows XP setup as you normally would.

Once XP has been installed, you can tweak it to your liking... but don't spend too much time on it yet. Remove the XP CD, insert the Vista DVD, and reboot.

Installing Windows Vista

Before we can actually install Vista, there is an important thing we must do, viz. to mark the Vista partition as active. If this is not done, then Vista will install its boot files onto the partition on which you have just installed XP. Although both XP and Vista will work, you will not be able to remove or format the XP partition in the future without repairing Vista.

Boot from the Vista DVD. Click "Next" and click "Install Now". Don't enter your product key. Click Next (click No if asked whether to continue without a valid key). On the next screen, select the exact version of Windows Vista that you have a product key for. (If you select the wrong one, you will have to reinstall Vista all over again in order to be able to use your purchased product key; you WILL be required to enter your product key when activating Windows.) DO NOT click Next yet.

Now press Shift+F10 as before to open a Windows PE command prompt. Type the following:

select disk 0
select partition 1

Close the command prompt and click Next. Proceed with the Vista installation as usual.

Adding XP back into Vista's boot menu

Now that you have Vista installed and working, you may have noticed that there is no way to get into XP. Thankfully, getting XP into the boot menu is not particularly difficult.

Copy the XP boot loader

Windows Vista's boot loader (bootmgr) cannot boot Windows XP by itself, but it can chain ntldr (the Windows NT/2000/XP/2003 boot loader). Thus, a copy of ntldr must be installed on the Vista partition.

Open My Computer. Click Organize > Folder and Search Options and click the "View" tab. Select "Show hidden files and folders" and uncheck "Hide extensions for known file types" and "Hide protected operating system files (recommended)". Click OK.

Open drive D (the partition on which you installed Windows XP). Copy the files "ntldr", "ntdetect.com", and "boot.ini" onto the desktop (temporarily). Open drive C and drag the files in. Note that a UAC dialog may pop up asking for confirmation.

Add the Windows XP entry to the boot menu

Click Start and type cmd. Right-click on cmd.exe and click "Run as Administrator". Type the following:

bcdedit /create {ntldr} /d "Windows XP"
bcdedit /set {ntldr} device partition=c:
bcdedit /displayorder {ntldr} /addlast

The last line simply specifies that the Windows XP entry be listed after the Windows Vista one. If you prefer Windows XP to be listed first, simply run bcdedit /displayorder {ntldr} /addfirst. To make XP the default operating system, run bcdedit /default {ntldr}. To change the timeout, run bcdedit /timeout xx, where xx is the number of seconds to wait until the default operating system is automatically selected.

Alternative: use EasyBCD

If you're uncomfortable using BCDEdit to modify your BCD store, download and install EasyBCD. EasyBCD is a graphical interface for BCDEdit that simplifies many tasks related to configuring Vista's boot loader, and I personally recommend this tool for anything related to adding or removing entries from the BCD. Note that you don't need EasyBCD just to add XP to Vista's boot loader.


Now that you have Windows XP and Vista installed on the same computer, you may install drivers and software. Remember to activate your copies of Windows within 30 days; before you activate, however, make sure that Windows runs correctly, and that everything is set up the way you want it.

Posted on Saturday, March 14, 2009 at 4:09 PM | Permalink

Comments (5)

Friday, March 19, 2010 at 10:35 PM
I followed this tutorial with Windows 7 instead of Vista and this worked flawlessly! Now I've got a working XP/7 dual-boot, thanks Nookkin!
Options: Reply | Quote | Flag / Report

Tuesday, April 27, 2010 at 10:19 PM
Create two partitions, C and D.
C > D in size for new OSes.
Install XP on D.
Install Vista/7 on C.

I remember from previous experiences that XP still called its drive C even though it is technically D.
Options: Reply | Quote | Flag / Report

Wednesday, April 28, 2010 at 12:50 PM
First of all, drive letters are defined within the context of an operating system (not the BIOS). Therefore, the idea of XP "calling its drive C even though it is technically D" isn't entirely correct.

Second, XP always calls the active partition on the first hard drive "C:" in the installer stage. It doesn't matter what size the partitions are. (Of course, if neither partition is marked as active, it might choose based on the size or order of partitions... not entirely sure on this one.)

Third, the main point of this tutorial was the separation of both systems. Even if you successfully install XP on C: and Vista on "D:" (the Vista installer still calls the active partition "C:" but renames the system partition to C: even if it was different in the installer window), it would work perfectly, EXCEPT for the fact that Vista's boot files will be on the active partition (in this case, the one XP is on). This would prevent you from just deleting the XP partition, and would give you issues if you're trying to boot from GRUB for example.
Options: Reply | Quote | Flag / Report

Wednesday, April 28, 2010 at 1:15 PM
I have always installed XP on Partition 2 and Vista on Partition 1, in that order. Never once had any issues with it or formatting the second Partition.
Though with the advent of Windows 7, I forgo installing XP.
Options: Reply | Quote | Flag / Report

Friday, April 30, 2010 at 1:22 PM
@William Your method puts Vista's boot loader and "Boot" folder onto the XP partition, because the XP partition is active. It works just fine... in fact, I intentionally had to have my laptop's boot partition be different from the system partition because the latter is encrypted by BitLocker.

This tutorial specifically addresses how to separate both operating systems completely and ensure that they both boot independently by simply switching the "active" bit. This is necessary if you want to use GRUB for multi-booting, and this allows you to just delete the XP partition without requiring you to repair your Vista partition's boot.
Options: Reply | Quote | Flag / Report

Leave a comment

six times three is (Huh?)
Comment moderation is enabled.
Your comment will appear on the page after it has been reviewed.