Installing XP & Vista on the same Partition

How to install Windows XP & Vista on the same (1) Partition?!

Advantages:

  • Even if you have to install your Software twice (in XP & Vista) it's possible to overwrite the 1st with the 2nd Installation to save Hard-Disk-Space.
  • You only have to Backup one Partition for a Backup of both Operating Systems.
  • Changes who are not Registry-related are automatically active in both Operating Systems.
    (Helpful if you're using WebServerApplications and Databases like: PHP, MySQL, etc...)

I've read a lot of things but nothing useful. Some people did it but they have to insert the Windows-XP-Installation-CD and Repair the Installation in order to Boot XP. The same Action is required to run Vista.
I think thats not an acceptable way. I wanted to have Vista's Bootmanager asking me to choose which Operating System to start. After about 8 Hours I did the impossible!
Here's the way it can be done!

DISCLAIMER
This Tutorial if for advanced Users only!
I don't take responsibility for Data-Loss or other losses that could occur when working with this Tutorial!

I did this Experiment on a Lenovo T41p Thinkpad.

Required Media:

  • a Windows XP SP2 CD! (a CD without SP2 could work but I didn't try it)
  • a Windows Vista-Installation-DVD!
  • a Tool for editing .ISO-Images (e.g.: MagicISO)
  • a Tool named EasyBCDEdit (Site: neosmart.net)
  • an Internet Connection (Broadband recommended)
  • CD-Burner and Burning-Software (e.g.: Nero)
  • an adjusted Version of a winnt.sif-File as described in Part 1.

[Duration: about 2-3 Hours!]

Part 1 [Preparing the Installation-CD]:

  • Greate an Image of the Windows XP SP2 CD with MagicISO.
  • Download and edit this File ->> winnt.sif
  • Edit the following values:
    • TargetPath:
      The Name of the Windows-Folder (default: WINDOWS) May not be Default! May not be longer than 8(!) characters! "WINDOWSXP" won't work!;
    • AdminPassword:
      Password for the Local Administrator Account;
    • ProfilesDir:
      This is the "Documents and Settings"-Folder by Default.
      "UsersXP" is doing well because Vista creates a "Users"-Folder for its Profiles. May not be Default!;
    • ProductKey:
      Enter your License-Key here;
    • FullName:
      This is the name you see when you right-click "My Computer" and go to "Properties";
    • OrgName:
      This is the Companyname you see when you right-click "My Computer" and go to "Properties";
    • ComputerName:
      The Computers name;
    • JoinWorkGroup:
      The Workgroup to join;
      • If you want to join a Domain with this Computer I recommend doing this manually after the Installation
  • Save and exit;
  • Open the Image of the Windows XP SP2 CD with MagicISO.
    • Switch to the "I386"-Folder, delete a File named "UNATTEND.txt" and add the adjusted "winnt.sif"-File.
  • Save and burn this Image.

Part 2 [Installing Windows XP]:

  • Install the new XP SP2 CD.
    • [If errors occur during installation most likely the "winnt.sif"-File was not edited correctly. Important and very error-prone is to set the " (quotation marks) properly.]
  • Boot Windows XP.
    • Check if the "Documents and Settings" and "WINDOWS" Folders exist. If they do something with editing the winnt.sif went wrong. Repeat Part 1.
      I've installed all available Windows Updates at this time but I cant tell if its necessary.
      *EDIT: I've tested it by now: It is not necessary.

Part 3 [Installing Vista]:

  • Install Vista.
    • When installing Windows Vista you'll get a notification which tells you that the Windows Vista Setup found a previous Version of Windows and will rename its WINDOWS-Folder to "Windows.old". It also says that your old Installation may not be bootable anymore (thats a lie! :D). Thats why the "winnt.sif" changes the "WINDOWS" & "Documents and Settings"-Folders. Accept this Notification and let the Installation go on.

Part 4 [Boot Vista and configure XP]:

  • Boot Vista
  • Switch to "C:Windows.old", rename the Folder "Program Files" to "Program Files XP" and move it to C:\ (root).
  • Delete the "Windows.old"-Folder without concerns.
  • Start "Regedit" and load the Windows XP [HKLM] Hive.
    • Therefor go to Start>Run... and enter "regedit" followed by an Enter. Click on HKEY_LOCAL_MACHINE and choose File > Load Hive....
      Now we got to choose the Windows XP [HKLM] Hive which is located at: "C:\WINXP\system32\config\software". Now you'll be prompted to enter a Name for the new Hive. The name has no importance so you can enter whatever you want. Now there should be a Subfolder with the name you entered.
  • Go to this Path:
    [WINXPHive\Microsoft\Windows\CurrentVersion]
    • Change the Values of "CommonFilesDir" & "ProgramFilesDir" to the new "Program Files XP"-Folder.
      [ATTENTION: The Value of "CommonFilesDir" may not point to the "Program Files XP"-Folder directly, it has to point to the "Common Files"-SubFolder!]

Part 5 [Configuring the Bootmanager]:

Windows XP is now prepared for these differences between our and a Standard Installation:

Windows Folder != C:\WINDOWS
Program Files != C:\ProgramFiles
Common Folder != C:\ProgramFilesCommon
Profiles Folder != C:\Documents and Settings

This means XP would be bootable if we could tell the Computer which Operating System to boot. Currently he would boot Vista as Default because Vista was installed at least, Vista's Bootmanager has renamed the Boot.ini (which belongs to XP) and overwrote the BCD (Boot Configuration Data). These Actions have to be reversed.
Therefor we need a Command Prompt and the attrib-Command.

[The following Commands have to be executed in a Command Prompt with Administrative rights!]
Open a Command Prompt and switch to C: Root (cd). Remove the "System" & "Hidden"-Attributes from a File named "Boot.ini.saved" (atrrib -s -h Boot.ini.saved).
Now its possible to edit or copy the File. To recreate Windows XP's Boot.ini just copy the File (copy Boot.ini.saved Boot.ini).

The biggest Part is done. All we got to do now is to tell the Bootmanager that there is another Operating System.
Download and install EasyBCDEdit.
[The Error which appears at the beginning of the Installation does not affect the functionality of the Tool so it can be clicked away without concerns!]
Start EasyBCDEdit and click on "Add/Remove Entries". Create a new Entry with the following Settings: Type: "Windows NT/2k/XP/2k3", Name: "Windows XP", Drive: "C:";

If you want to change the name of the Vista Entry for not having Micro$oft contained in the Name just do this under "Change Settings".
Do not forget to Save the new Settings.

By now the Bootmanager should show up after reboot and let you choose which Operating System to boot.

Part 6 [Known Issues]:

It is quite possible to install Programs to the same "Program Files"-Folder to save Memory. It worked with every Software I use except Office Outlook 2007.
After the Installation of Office Outlook 2007 in Vista there is an Error in XP. I solved this Error by installing the Windows Updates which became available only after the Installation of Office 2007. My Cycle looked as follows:
Installation of XP SP2.
Installation of Updates for XP.
Installation of Vista, editing the Bootmanager, Boot.ini and Registry-Values.
Switching to Windows XP and Installation of Software (Visual Studio 2008, Nero, Office 2007, etc.)
Switching to Vista and Installation of the same Software.
Switching to XP (here is where the Outlook Error appears) and Installation of Updates for Microsoft Office 2007 through the windowsupdate.com Site.
Outlook 2007 is functioning properly on both Systems.

Attention Friends of Hibernation!
Depending on which Operating System was sent to Hibernation the Bootmanager will automatically skip the "Choose OS"-Dialog and boot up the hibernated one. This means: To switch between Operating System you have to do a clean Shutdown on the active one.
Unfortunately I did not find out (maybe its impossible :)) how to skip the "Is there a Hibernation"-Query yet. If I do you'll find out here.

Other Problems are not familiar to me. If you have trouble with this Tutorial or you ran into other Problems that appear because of the Shared-ProgramFiles-Folder please leave a Comment!