Windows – Dual boot with auto-hiding partitions, so they appear as C: for each OS

multi-bootwindows 7windows xp

My idea is to setup a dual boot with Windows 7 and XP, and I want each OS to get his system drive as C:. On the other hand, I would like each OS don't see other partition.

Windows 7 is the main OS, XP is for legacy softwares (I don't have enough RAM to install VM).

Is there a simple way to do that?

Best Answer

Yes, there's a way. Possible: yes. Simple: Possibly.

First let's clear up some terminology. What you're talking about is the boot volume. That's the Microsoft terminology, and I'm going to be using it throughout this answer, so as to not confuse you when you read the articles hyperlinked from this answer that use the same terminology. You want each operating system to have its own boot volume.

Fortunately, that's actually standard operating procedure for the Windows 7 installer. It's even SOP for the Windows 7 installer, subject to considerations that I'll outline in a moment, to give the Windows 7 boot drive the drive letter 'C'. So most of what you want will just happen.

What you also want, which is the very important thing that is probably the most complex part of the procedure, is a single system volume. This is necessary in order to dual boot. If you want to dual boot, you pretty much must use Microsoft's Boot Manager as the primary boot manager. It's far too painful to try getting Windows XP's NTLDR to boostrap Windows 7. Whereas getting Microsoft's Boot Manager to bootstrap Windows XP is fairly easy. If you must use Microsoft's Boot Manager, you must, in turn, have a separate, single, system partition. That's where Microsoft's Boot Manager is going to live.

The procedure, in overview, is:

  1. Start with a blank disc. Create a 200MiB NTFS primary partition. This is going to end up as your system volume, with Microsoft's Boot Manager in it.
  2. Create a second NTFS primary partition. Make it the "active" partition, and then install Windows XP into it. Making it the "active" primary partition will prevent any problems caused by Windows XP thinking that it needs to fiddle with your system volume. Nothing should go into your system volume yet. You now have your Windows XP boot volume. Unfortunately, right at the moment it's a combined boot+system volume as well.
  3. Make the system volume the "active" partition. Create a third NTFS partition. Install Windows 7, by booting from the CD media, into that third partition. Microsoft provides a fairly superficial overview of the process. It's important to not install Windows 7 from within Windows XP. If you do that, Windows 7 will know about Windows XP drive letters, and you won't get drive 'C' for the boot volume in Windows 7. It's also important that Windows 7 recognize the system volume, with its active flag, so that it puts Microsoft Boot Manager there. It doesn't matter if the Windows 7 boot partition, the third partition created, is a secondary partition and not a primary partition. Indeed, in some ways it is better that it is a secondary partition. Only your system volume needs to be a primary partition at the culmination of this procedure. Your Windows XP partition is only a primary partition so that it was easy to install onto a blank disc.
  4. Move the Windows XP boot loader files into your system volume. The files ntldr, boot.ini, and ntdetect.com need to be copied from the root directory of your Windows XP partition into your system volume's root directory.
  5. Tell the Microsoft Boot Manager, in your system volume, about the Windows XP operating system loader and to add it to its menu. M. McTavish provides the commands to do this:
    bcdedit /create {ntldr} /d “Windows XP”
    bcdedit /set {ntldr} device partition=\Device\HarddiskVolume1
    bcdedit /set {ntldr} path \ntldr
    bcdedit /displayorder {ntldr} /addlast
  6. Tell Windows XP and Windows 7 not to assign drive letters to each other's boot volumes. This is a simple exercise in the use of the Disk Management tool, or of the remove letter command in diskpart, when booted into each operating system.

It is possible to stuff up this procedure. One way of stuffing up results in Windows 7 treating the Windows XP partition as the system volume. Fortunately, Microsoft has a lengthy step-by-step procedure for getting out of that particular mess and ending up, as here, with Microsoft Boot Manager and the Windows XP loader in a single separate shared system partition, with Windows XP and Windows 7 each having their own boot partitions.

Another way of stuffing up, that leads to error messages when one reboots after installing Windows 7, is to somehow end up with a Windows NT 5.x NTFS VBR on the system partition rather than the Windows NT 6.1 NTFS VBR that should be there in order to invoke Microsoft's Boot Manager, and that Windows 7 installation would have put there. Microsoft has a step-by-step procedure, covering some of the same ground as M. McTavish did, for getting out of that mess, too.

Related Question