How to boot from different Hard Drive

My computer originally had a 250gb SATA hard drive with 3 partitions:

C: Windows XP
E: Data
F: Programs

I recently added a new 500gb SATA hard drive and installed Windows 7 Ultimate onto it.  The PC now dual boots.

I've copied the Windows XP partition from the original drive to the new drive into its own partition and used BCDEDIT to change the original Windows XP boot partition to use the new one on the new drive.

Now, when I boot I get the same menu, but when choosing the option to boot into XP it displays a 2nd menu showing the two XP installs; the original and the copy on the new drive.  So far so good.

I now want to remove the original XP partition on the old drive so that both O/S's are booted from the new drive.

As a test, I changed the hard drive boot sequence in the BIOS to boot from the new hard drive first.  Unfortunately, after the original boot screen, this displays a few spurious characters and then hangs i.e. it never gets to windows.  If I change the hard drive boot sequence back everything works again.

What do I need to do to get the PC to boot from the new hard drive?  The boot information appears to exist on the old drive and I need to transfer/copy it to the new drive.
LVL 16
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Darius GhassemCommented:
Seems like your MBR is not setup on your system which can be fixed by running fixmbr or doing a repair on Windows XP from the disk. Did you just copy the Windows XP partition to the new drive or did you image the drive?
Since you've copied it over, you could disconnect the old drive and run the Win 7 boot repair.

Or if you run the XP repair, and get it into WIndows, edit the boot.ini to no longer point to the old drive as an option.

7 and XP use different styles of MBR. Running MBR repair in XP might goof up 7, and vice versa.
The boot file data needed by Win7's boot process is in a hidden folder called \Boot.  If you did a clean install, this is in a hidden partition; if you did an upgrade from Vista, then it's under C:\Boot.  You can use the built-in BCDedit program to edit this BCD file, but if you are going to get rid of the hard drive with XP on it, then you will need to copy it from that hard drive to the one you want to remain with containing XP and Win7 as separate partitions.  See this tutorial for how to use BCDedit:[2]=General Tips
Active Protection takes the fight to cryptojacking

While there were several headline-grabbing ransomware attacks during in 2017, another big threat started appearing at the same time that didn’t get the same coverage – illicit cryptomining.

Using FIXMBR from XP will mess up the Windows 7 MBR and you won't be able to boot into Win7 anymore.  But it is not the MBR (Master Boot Record) that is messed up, it's the BCD file used by the Win7 bootloader.
MilleniumaireAuthor Commented:
I used a free tool call Partition Wizard 5.0 Home Edition, which appears to work very well and has a better graphical interface than the disk manager supplied with Windows 7.

This product offers a Copy Partition facility, which I used to copy the Windows XP partition on the old drive to a new partition on the new drive.  I then had to use BCDEDIT to add the new O/S to the Windows 7 boot information.

Windows 7 was installed from an upgrade disc, but as a custom (clean) install into an empty partition on the new drive.

From the advice given so far it appears that I need to avoid using any XP tools to change the boot Windows XP boot.ini file as this will screw up the Windows 7 boot information.  I will try the following:

1. Ensure BIOS is booting from 1st SATA hard drive.
2. Disconnect the old drive , currently connected to SATA 1.
3. Connect the new drive to SATA socket 1 on the motherboard (it's currently connected to the 2nd SATA socket).
I suspect if I boot at this point, the boot will fail as it is currently doing when I set the BIOS to boot from the new (2nd) drive.
4. Boot from the Windows 7 recovery disc and run bootrec:
       bootrec /fixboot
       bootrec /fixmbr
       bootrec /rebuildbcd
5. Exit Windows 7 recovery and reboot and it should now give me the option to boot into Windows 7 or XP while only using the new Drive.
6. Connect the old drive to SATA 2 connector on motherboard and reboot.  Hopefully this will continue to boot from the new drive (as this is the first hard drive) and I can then reformat and partition the old drive ready to use for backing up.
MilleniumaireAuthor Commented:
Alternatively, I thought I might do the following:
1. Make room on the old drive for a new partition and install Windows 7 into it, so I now have both O/S's on the old drive.  This should result in the old hard drive being able to dual boot into both O/S's without using the new one at all.
2. Completely reformat the new drive and perform a drive copy to duplicate the old drive to the new one.  I assume this would copy the mbr and all other boot information.
3. Unplug the old drive from the SATA 1 connection on the motherboard and plug in the new drive to SATA 1.
4. It shouldn't be necessary to fix any MBR's or boot files as all the required information should have been transferred during the drive copy.

The reason I would prefer both O/S's on the new drive rather than the old is that it is a faster drive so hopefully, the running O/S should perform better.  If it wasn't for this I would just install Windows 7 on the old drive alongside XP and leave it there, using the new drive to install programs and store data.
MilleniumaireAuthor Commented:
A third possibility that has sprung to mind would be to do the following:

1. Disconnect the old drive and connect the new drive to SATA 1 connector.
2. Completely reformat the new drive.
3. Install XP onto new drive.
4. Install Windows 7 onto new drive.
5. At this point I have two new installs on the new drive and I should be able to boot into both without changing any boot information.
6. Connect the old drive into SATA 2 connector.
7. Use Partition Wizard to copy the old XP partition on the old drive to the new XP partition on the new drive, thereby overwriting the new vanilla install with the old install.
8. Disconnect the old drive and reboot.
Will I then still be able to dual boot into either O/S and will it correctly boot into the "old" XP install on the new drive?  Or will it be necessary to change the boot.ini file as this will have been copied from the old XP partition?
Login to the Windows 7 installation and grab a screenshot of the bcd.  To do this bring up an elevated command prompt and type:

BCDEDIT without any parameters

You may be able to do this by making a few changes to the bcd with bcdedit.  Then delete the old XP partition on the old hard drive.

I would like to see what your boot menu looks like right now and a copy of the bcd for the new hard drive.
MilleniumaireAuthor Commented:
ch6ausc, I fairly sure I can't do this with BCDEDIT as I've already tried playing around with it.  It seems that as long as my old drive is connected to the PC it always boots from that first and any attempts to force the PC to boot from the new drive (by changing BIOS) fail.

I've tried using bootrec as well from a Windows 7 Repair disc but I get the same thing.  It looks like I need to disconnect the old drive to try to force a new MBR to be written to the new drive, rather than it being written to the old drive.  I haven't tried this yet.
If you delete the the XP partition on the old drive, the boot information should be deleted and the MBR on the old drive should be updated so that no boot information will remain.  The only information in the MBR will be for the other two partitions, none of which are bootable.  The MBR on the new hard drive will be unaffected by deleting the old XP partition.

Secondly, you have to make sure in the bcd of the new drive that nothing is pointing to the XP partition on the old drive by issuing the BCDEDIT command and looking at what partitions are assigned to the entries.  If a partition is defined in there for the old drive, then that is when you will have a problem.
MilleniumaireAuthor Commented:
Okay, thanks I'll keep that in mind when I try this over the weekend.
MilleniumaireAuthor Commented:
Unfortunately, I failed to "move" the MBR from the old drive to the new drive, so I ended up doing the following:

1. Re-formatted the new drive (with Windows 7 installed) and creating a few new primary partitions on it.
2. Disconnect the old drive (with Windows XP and the MBR).  This drive was connected to SATA 1 on the motherboard, while the new drive was connected to SATA 2.
3. Connect the new drive to SATA 1.  At this point I only have one empty drive connected to the PC.
4. Installed Windows 7.
5. Re-connected the old drive to SATA 2.

This now gives me a system with the old drive unchanged and the new drive with Windows 7 installed.  I no longer get a boot menu as when BIOS is set to boot from SATA 1 (new drive) it only sees Windows 7 and knows nothing about the Windows XP install on the old hard drive.  This will be the way I use the machine 99% of the time.

If I need to access the old Windows XP install, I can change the BIOS and set it to boot from SATA 2 (the old drive), where it will again boot directly into Windows XP without displaying a boot menu due to the MBR on the old drive only referencing Windows XP and knowing nothing about Windows 7 on the other drive.  I admit I did have to tidy up the MBR on the old drive a little as it had a few spurious entries from my earlier attempts.

Although this setup isn't as user friendly has using a boot menu to start either O/S, it will do for now and no doubt I will be clearing off Windows XP once I'm happy everything is running under Windows 7.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows 7

From novice to tech pro — start learning today.