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

5

2

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?

Velcro

Posted 2011-07-05T13:30:41.320

Reputation: 335

Don't think its possible, or even if it is, that you want it done. – soandos – 2011-07-05T13:41:24.077

1I think the best you can do is change the partition types to pretend that the one you don't want to see is a non-Windows partition. It is in theory possible to do this in the bootloader, but I don't know one that can do this. – pjc50 – 2011-07-05T14:33:32.447

Another way would be to install a MBR bootloader like GAG, which can hide all primaries partitions but the active one, so Windows don't see them. (Before, I install Windows XP and 7 on differents partitions by swaping the active and hidden flags). Nevertheless, I would prefer to have Windows Boot Manager. – Velcro – 2011-07-06T10:58:08.793

Why don't you just un-assign the drive letter for the other OS from inside Windows. Like in windows 7, just open Disk management and Remove the drive letter of Windows XP partition. And same in Windows XP. And also the drive letter of Windows in C: by default always(Even in Dual boot). – Akshat Mittal – 2012-06-21T13:52:55.560

Answers

4

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.

JdeBP

Posted 2011-07-05T13:30:41.320

Reputation: 23 855

Thank you for detailed explanations! But I get a problem at step #3. Once Windows 7 has finished his installation (with the "active" system partition, and before I see "Starting Windows" screen), this error appear: A disk read error occured <newline> Press Ctrl+Alt+Del to restart. I tried a bootrec /(fixmbr|fixboot), and with a primary/secondary partition. – Velcro – 2011-07-06T07:48:49.253

Note: Acronis shows the 200 MiB system partition as corrupted (red C letter). – Velcro – 2011-07-06T07:55:04.897

That's another SuperUser question and answer.

– JdeBP – 2011-07-06T09:20:10.680

I just read it. So I tried again the process, but I moved partitions on the disk. I got the same result. So, there are two possibilities: either my hard drive has a big problem (whereas until now a typical installation of Windows XP worked well), or the described method has issues. – Velcro – 2011-07-06T10:53:31.373

Step #3 is exactly as Microsoft tells you to do, as now noted. And Microsoft has a step-by-step procedure for getting you out of your current mess, too. – JdeBP – 2011-07-06T11:33:52.217

until now a typical installation of Windows XP => until now a typical installation of Windows XP [or Windows 7] – Velcro – 2011-07-06T11:36:05.733

0

I know it's now 2017 and it's unlikely a lot of people do this, but I have a client who asked me to do a dual-boot computer with XP and Win 7. A VM was considered, but he preferred a dual-boot system. The computer has an SSD and for performance and TRIM reasons, we wanted it in AHCI mode.

Since the computer doesn't have a floppy drive, I had to go through the process of using nLite to add text-mode drivers for the SATA/AHCI mode. That's a lot faster than I remember it from 13 years ago. :)

Now I had to do the dual-boot. There were a plethora of articles about how to do the dual-boot and they all work well.

I had a Clonezilla image of a 32GB SSD into which I installed Win 7. I booted to the Clonezilla thumbdrive, restored the drive image, booted to Win 7, went to Disk Management and expanded the C:\ partition out to all but the last 80GB of the SSD. So far, so good.

I then installed Win XP and that is when the challenges started. The XP setup saw the little 100MB partition and larger partition for the Win 7 install and assigned them C:\ and D:\ respectively. Once XP was installed, it installed to a different drive letter. It wasn't a huge deal to me, personally, but my client is likely not savvy enough to change the installation path of every program he's going to install once I give this to him. I really wanted a solution where each OS saw it's own C:\, and not the other OS's.

The search for that solution brought me here, and Velcro turned me onto GAG Bootloader. That completely solved my problem.

I had to go into Win 7, delete the partition with the XP install on it, then create a new primary partition.

I then booted the computer to the GAG CD that I burned from the provided ISO. I could then add a new entry. I saw three partitions and selected the first one in the list, labeled it "Win 7", then added another entry, selected the last partition, labeled it "Win XP". I then went back to the main menu and selected the option to hide primary partitions, then saved it to the drive.

I now can turn on the computer, get to GAG's menu, select either OS option and it boots, the computer only sees a C:\ drive and not the other OS's partitions.

Thank you for your help and I hope this helps someone else avoid a few hours of challenge.

Ras72

Posted 2011-07-05T13:30:41.320

Reputation: 1

So you are recommending a product then.. I see!! – Pimp Juice IT – 2017-05-02T02:57:28.047

3

Welcome to Super User! Please read How to recommend software for minimum required information and suggestions on how to recommend software on Super User. To keep your answer useful even if the provided link(s) breaks these details should be edited into your answer.

– I say Reinstate Monica – 2017-05-02T03:36:16.927

0

For everyone attempting this, just get 2 drives it makes it way easier.

Then just unplug 1, install Windows on the other and unplug it. Plug the other in and install second version of Windows you want.

Use the bcdedit tool to make them both a option at bootup or simply boot the secondary through BIOS boot override when you need it.

Then all you need to do in case of Vista andis to hide system drives for Windows of the secondary Windows versions by going to computer manager/drive manager and remove the drive letters of the 100 to 500 MB partitions you find.

I just did this for Windows 7 and Windows 10 10 but did stick with the BIOS boot override.

Pino de vogel

Posted 2011-07-05T13:30:41.320

Reputation: 1

0

I accomplished this using this tutorial and Master Booter (shareware, but till 3 OS free):

http://www.megalab.it/4115/dual-boot-installare-windows-xp-vista-e-windows-7-sullo-stesso-pc-nel-modo-corretto

Now I have Win XP and Win 7 running alternatively without seeing each other, moreover I have a logical partition that is shared between all OS with the same letter.

It's written in italian but it's pretty clear.

user223468

Posted 2011-07-05T13:30:41.320

Reputation: 1

Welcome to Super User! Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.

– Canadian Luke – 2013-05-10T17:36:29.673

Link is already provided, I'm going to provide basic steps in following answer. – user223468 – 2013-05-11T07:27:11.480