Moving Windows XP pro to different hardware

Contents.

Preparation

Please read all of this article to ensure that the procedure is sucessful.

When moving a hard drive or laying down an image taken from one PC to another PC with a different hardware profile,
Windows 'blue screens' with an 'inaccessable boot device' error.

This is because the pnp id information for the ide controller is not present in the registry.

Copy system files

The solution is to insert and merge, the necessary entries into the registry. The system files Atapi.sys, Intelide.sys, Pciide.sys, and Pciidex.sys,
should be extracted from the XP installation disk. To do this, go to RUN box and use CMD to browse to the i386/driver.cab on the CDROM.
Use the following commands;
expand driver.cab /f:atapi.sys %SystemRoot%\System32\Drivers
expand driver.cab /f:intelide.sys %SystemRoot%\System32\Drivers
expand driver.cab /f:pciide.sys %SystemRoot%\System32\Drivers
expand driver.cab /f:pciidex.sys %SystemRoot%\System32\Drivers
These are copied to %systemroot%\system32\drivers where %systemroot% is the windows installation folder.
If the same version or newer versions of these files exist, windows should prevent them from being overwritten. The copy command will ask if to overwrite existing files, if in doubt, answer no.
Hint: Create a folder in system32 called something like test and extract the files there instead.
These system files can then be copied and placed along with the registry and batch files onto a floppy or a key drive for use on other machines as well.

Back to contents.

Registry entries

The registry entries should be copied to a text editor such as notepad,
save the file as MERGEIDE.REG.

The keys that are to be merged are as follows;

*Start copy from below this line.*
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\primary_ide_channel]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\secondary_ide_channel]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\*pnp0600]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\*azt0502]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="atapi"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\gendisk]
"ClassGUID"="{4D36E967-E325-11CE-BFC1-08002BE10318}"
"Service"="disk"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#cc_0101]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_0e11&dev_ae33]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1039&dev_0601]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase \pci#ven_1039&dev_5513]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1042&dev_1000]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_105a&dev_4d33]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0640]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0646]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0646&REV_05]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0646&REV_07]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0648]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1095&dev_0649]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1097&dev_0038]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10ad&dev_0001]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10ad&dev_0150]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10b9&dev_5215]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10b9&dev_5219]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_10b9&dev_5229]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="pciide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1106&dev_0571]
"Service"="pciide"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_1222]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_1230]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2411]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2421]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7010]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7111]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7199]
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
"Service"="intelide"

;Add driver for Atapi (requires Atapi.sys in Drivers directory)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi]
"ErrorControl"=dword:00000001
"Group"="SCSI miniport"
"Start"=dword:00000000
"Tag"=dword:00000019
"Type"=dword:00000001
"DisplayName"="Standard IDE/ESDI Hard Disk Controller"
"ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,61,00,74,00,61,00,70,00,69,00,2e,\
00,73,00,79,00,73,00,00,00

;Add driver for intelide (requires intelide.sys in drivers directory)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IntelIde]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Tag"=dword:00000004
"Type"=dword:00000001
"ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,6e,00,74,00,65,00,6c,00,69,\
00,64,00,65,00,2e,00,73,00,79,00,73,00,00,00

;Add driver for Pciide (requires Pciide.sys and Pciidex.sys in Drivers directory)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PCIIde]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Tag"=dword:00000003
"Type"=dword:00000001
"ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,70,00,63,00,69,00,69,00,64,00,65,\
00,2e,00,73,00,79,00,73,00,00,00
*End copy above this line.*

Back to contents.

Batch file

This can be semi-automated with the use of a batch file.
Copy the following into a text file and name it MOVE_XP.BAT

*Start copy below this line.*
@echo off
echo This utility installs system files and
echo registry info that enables the installation
echo to be moved to a system with a different
echo hardware profile.
echo Useful for cloning to different pc's or
echo moving the hard drive.
echo Please ensure that all the files needed for this
echo procedure are in the same directory as this batch file
echo You must have a legal copy of Windows XP to use this utility.
echo GH 2003
echo on

copy ATAPI.SYS %systemroot%\system32\drivers /y
copy INTELIDE.SYS %systemroot%\system32\drivers /y
copy PCIIDE.SYS %systemroot%\system32\drivers /y
copy PCIIDEX.SYS %systemroot%\system32\drivers /y

@echo off
echo Answer yes to merge the registry info.
echo on

MERGEIDE.REG

@echo off
echo The workstation will now shutdown. Please save all open files.
echo To cancel shutdown, press ctrl+c now.
pause
cd %systemroot%
shutdown -s -f -t 15 -c "Shutting down to activate Hardware Migration Utility."
exit
*End copy above this line.*

Back to contents.

Procedure for installation

  1. All of the following files should be in the same folder. The directory structure should conform to DOS convention, i.e, names follow 8.3 rule etc.


  2. Run the MERGEIDE.BAT file, at the prompt "Are you sure you want to add the information in *:\move_xp\mergeide.reg to the registry?" Click Yes.
  3. After the import process is completed, Windows will display another message:
    "Information from *:\move_xp\mergeide.reg was successfully entered into the registry". Where '*' is the drive letter. Click ok.
  4. At this point the batch file pauses, to continue, hit any key. To prevent auto shut down, press ctrl+c.
  5. Shut down the PC and power up again to check that there are no problems. If all is o.k, Shut down the PC and clone or move the hard drive to the other PC.
Please note that there are no guarantees that this procedure will work in all circumstances.

This procedure has been tested on XP up to SP2. It also works for Windows 2000 but the Atapi.sys, Intelide.sys, Pciide.sys, and Pciidex.sys files must be used from the Windows 2000 installation disk. The above registry entries remain unchanged.

For retail versions of XP, the activation request will be triggered due to the change in hardware profile. This is not a problem for the VLA version of XP or Windows 2000.

Back to contents.

Building reference installations for cloning

To create a generic image that can be cloned to other desktops and laptops it is important that the reference machine conforms to XP hardware compatability. It is recomended that laptops are not used as a reference, their specific hardware configurations could result in boot failure if the image is used for another machine. If a laptop has to be used, do not install proprietry hardware or the manufacturers own utilities such as hotkeys, docking software etc.

Non compliant hard drive controllers such as sata and some scsi controllers should be installed in the the usual way with the oem driver setup disks. If the controllers are a pci card as opposed to integrated on the mother board then installing the card onto the reference machine and installing the drivers as normal will work fine.

If building a machine for reference purposes it is recommended to use a small hard drive or partition if possible. Expanding an image to fill a hard drive causes fewer problems than contracting the image onto a drive smaller than the origional. 10 to 20GB is fine. Keep the memory size to around 128mb to 256mb.

Back to contents.

Gary Hollands 2003

 

Solriche