I spent many hours this weekend trying to replace a 40G hard drive serving as a Windows XP boot drive in my wife’s computer with a 250G hard drive. The drive was running out of free space but I didn’t want to spend the hours reinstalling all the applications and reconfiguring the PC. So I had been putting off the project for some time, guessing that it would be a hassle, and the project lived up to my expectations.
Unfortunately I rediscovered/confirmed what others already know: Windows XP doesn’t migrate easily from one hard drive to another.
The PC hardware configuration I was working with includes two IDE hard drives, and a single IDE DVD/CD-RW drive running on a SATA cable using a SATA to IDE converter, because the motherboard only supports two IDE drives. It is admittedly a bit of a goofy setup, driven by the fact that I had lots of IDE hard drives and only IDE DVD/CD drives as well and the cheap motherboard limitations.
I first attempted to use an Ultimate Boot CD to copy the existing boot drive to the new drive. This process would take about 45 minutes to boot off the CD and run DriveImage XML to copy the drive. Although the drive copied properly and the files appeared to all have been on the new drive, I couldn’t get XP to boot off it. So I tried rewriting the boot sectors with utilities on the Ultimate Boot CD without luck.
After I ran the TestDisk utility on the Ultimate Boot CD it told me the drive parameters were incorrect on the resulting drive. After several attempts trying to copy the drive using the Ultimate Boot CD and its utilities with minor variations and many hours spent waiting for the reboot off the CD and the copy itself gave up on it. I don’t know what the problem was, but clearly the DriveImage XML did odd things with the copy that prevented it from booting.
At one point I tried to boot off the Windows XP install CD to attempt to use the Windows XP Recovery console but got a fatal error almost immediately during the XP boot. I suspected the SATA to IDE converter I had on the DVD/CD drive. So I added another IDE DVD drive to the IDE cable using cable select jumper settings. The XP Recovery console did nothing to help correct the problem regardless.
The next course of action was to follow the directions on the Winhlp page outlined here. I pulled the existing boot drive from the PC, hooked it up to a USB to IDE converter and copied all the files to my desktop. Then I copied all the files to the new hard drive. This process went without a hitch.
Unfortunately when I attempted to boot off the drive, I got a hardware configuration error message. So I went through the steps to rebuild the boot configuration using bootcfg using the Windows XP Recovery console again. I got the drive to boot, but when it got to the Windows “loading personal settings” screen it wouldn’t proceed further.
So I decided I would have to do a Windows XP Repair installation. It would take more time to go through the entire Windows XP installation, but at least I wouldn’t have to reinstall all the apps. At that point I had already spent hours copying, rebooting, etc., so what was another hour installing XP, give or take?
After the Windows XP installation had completed (and another hour or so had elapsed) the computer booted, but it appeared that the antivirus program was missing. I was also getting some other oddball things going on, and realized that the boot drive was now designated as the E: drive.
I then mistakenly and foolishly decided that the cable select jumpers and cabling on the hard drive and DVD drive I had added had resulted in the drive letter change, so I went back to a master/slave drive jumper configuration and reinstalled Windows again. This of course didn’t change anything, so after another hour of installing Windows XP, I still had an E: boot drive.
So I did a quick bit of research and found directions on how to change the drive designator in XP straight from the horses mouth, Microsoft. I edited the registry, rebooted and discovered I was a horse’s ass for trusting Microsoft. It turns out using this fix on XP boot drives will break XP. Apparently although I had changed the drive letter, all the registry entries still referred to the E: drive which no longer existed. I tried using Ultimate Boot CD to restore the original registry without success. I was right back where I started from with a non-booting drive.
My initial online research appeared to indicate that it was impossible to re-designate the drive letter for any XP boot drive without a complete reinstall.
An XP Repair installation designates the first “free” drive letter in the existing registry to the boot drive. Since XP uses drive hardware/serial IDs in the registry to assign drive letters both the old C: boot drive and the second hard drive (D:) had “squatter’s rights” on their drive letter designations. No matter what the Repair installation would keep designating the new drive the first free drive letter (E:) regardless.
However I have found that if one searches online diligently enough one can find solutions to almost any computer problem. I also felt that after the many hours I had already spent on the project that I was past the point of no return. I would have a C: boot drive without a fresh OS install or die trying!
So I searched and read and read some more, and eventually found what appeared to be a solution suggested in a message thread by Pete here. He writes:
Here’s the workaround. (I just tested it successfully and I am back to C: for the
system partition.
Step 1: Make the regiustry changes as specified in the KB article, and exit regedit.
Step 2: ***BEFORE YOU REBOOT*** run XP setup. Select “upgrade”, and walk through
the steps. When the system reboots, it starts in setup mode. Go ahead and let the
setup run through completion (57 minutes in my case), and when you are done, you
will have your system back, configured properly. True, you’ll need to reapply service
pack 1a and any hotfixes, and change any drivers that you do not want to be MS drivers
(in my case I prefer the Promise controller drivers to Microsoft’s), but you will
be back in business.
Since this procedure made sense to me I pulled the new drive and re-copied all the files from the original drive again to make a clean start of it. Then I booted into the XP Recovery console and used the bootcfg option again to get Windows booting again.
Once I got Windows XP up and running I once again edited the registry per Microsoft’s instructions. However, before rebooting I ran the XP setup CD from within XP, selecting the “upgrade” option.
The XP setup ran and an hour later I had my existing XP installation running on a new larger boot drive, with the C: designator! Pete, wherever you are, you are the man!
So after numerous hours of booting, rebooting and lots of cursing, I had discovered what I knew intuitively before I had even started. Replacing a boot drive in Windows XP without a fresh install of the operating system is a pain in the butt. The process itself isn’t difficult but the trial and error discovery of the proper steps to take was extremely time consuming given the limited information available on how to accomplish the task.
It’s embarrassing to think about how many hours I spent on this project. But I’d like to believe that the many hours would have been exceeded by the reconfiguration and reinstallation of all the apps under a clean/new XP installation, but I’m not so sure that’s the case considering the way I muddled through this project…
But I did finally find a way to do it, as it turns out without even requiring any special utilities. Under ideal conditions it will take at least 3-4 hours to do this one time.
Here are my time estimates:
1) time to copy the original drive to the work PC (30 minutes per 40G copied)
2) time to partition and format the new drive (1 hour+ per 250G)
3) time to copy the files back to the new drive (30 minutes per 40G copied)
4) time to boot Windows XP off CD and run Recovery console (15 minutes)
5) time to boot into Windows XP (5 minutes)
6) time to run Windows XP upgrade install from WIndows XP (1 hour)
Compare that to a fresh Windows XP install of 2 hours+ between hard drive format and installation itself, and the additional time to reinstall all your apps and configure the PC (2 hours+), and the fact that you won’t lose any documents or files, and I believe this is still a better way to go (as long as the XP installation you’re migrating is running good).
Hopefully this accounting saves someone else from wasting all the time I spent on this endeavor figuring out how to accomplish the task (as well as my own the next time I try to do this).
And thanks again, Pete!