Recently I was presented with the task to migrate a Windows XP installation from an 80 gig PATA drive to a 160 gig SATA drive. The purpose of the migration was two fold. One to increase the size and performance of the system by moving it to the larger and faster SATA drive and two being the implementation of a back up system. Here I will touch on the migration only, the back up may come later.
I have used a bunch of tools in my time to try moving an OS. In the end most times it was faster and easier to simply do a clean install of the OS on the new drive. This had been done recently so I really did not want to do it again. Plus this system was used almost daily. In some part for business.
To make the move as easy and transparent to Windows XP as possible I wanted to mirror it. I could use some other solution but I am a Linux guy, so I went with a Helix live CD to get the work done. Using dd, a tool on most Linux distributions I made an exact copy of the 80 gig drive on the 160 gig drive. Once it finished about an hour later I wanted to make sure the mirror went well before proceeding. It booted like a champ first go around. Of course the size of the partition was still only 80 gig.
To get the full size of the disk I again booted the Helix CD. Using QTParted I resized the XP partition to fill the disk minus a 3 gig section for the back up solution. Rebooting yielded a still small 80 gig partition. Knowing how XP and others can be I forced XP to do a drive check on the next boot. The same kind one gets when Windows fails to start or is shut down improperly (Insert “CRASHES”). Once it had finished booting the partition was up to capacity and correctly reported by Windows.
The sweet thing about this method is the drive looks pretty much the same to XP. So when the move is complete it will not complain or make you call Microsoft to verify you license. It drives on like nothing ever happened.