Why do I get a BSOD when I moved my hard drive from one machine to another? ~ Ask The Admin

Friday, February 29, 2008

Why do I get a BSOD when I moved my hard drive from one machine to another?

Windows 2000 and XP produces a blue-screen of 0x7b after you transfer a Disk from one motherboard to another. The reason for it, is the difference in the IDE Disk controller.

Windows will only boot successfully using the same IDE controller of the same manufacturer (i.e. Intel, VIA etc..). It's not that the Windows plug'n'play mechanism can't handle the change, but that Microsoft doesn't really want us to take one Windows from an old system and move in to a new one. so logically it is programmed to produce an error message.

To successfully make the change, you have 3 options to choose from:

  1. Run a Repair installation to make Windows reinstall on its hardware.

  2. Find a new motherboard that contains a chipset from the same manufacturer.

  3. Run the following cool procedure.... :))
Thankfully, there's a working workaround straight from Microsoft's Knowledgebase (KB314082). What we will basically do is to tell Windows that it already "knows" all of the generic IDE types from all vendors. that way, when it will boot up, it will only install the new hardware and not refuse to boot because it is missing the old one.

The procedure described in the article takes you through extracting some drivers from the I386 and importing some registry data from a text file to the system.

But as you all already knows- I like Automation!!

so I've writen a script called UpdateIDE that checks whether you run it on a Win2000/XP/2003 and does the patching needed for the HD relocation.

What you basically need to do is:

1. Run the script while the disk is still installed on the original machine.

2. Shutdown, Relocate the disk to the new system & boot.

3. Windows will do it's hardware recognition magic and you're up & running :)
While working in Microsoft's IT team back in 2002, I've used this tool to create a master Ghost image that I could deploy on all the laptops brands & models we've had to support.

But What Can I do if my old Motherboard is Dead?

If you can't run the script on your original machine beforehand, we'll have to you another working system.

1. we'll connect the drive as a secondary disk on a working machine (so it will appear as drive "D" for example....)

2. we will have to make the file copying manually. according to your Windows version (2K/XP), copy & rename these 4 files as follows:

  • atapi.xp --> d:\windows\system32\driver\atapi.sys

  • pciide.xp --> d:\windows\system32\driver\pciide.sys

  • pciidex.xp --> d:\windows\system32\driver\pciidex.sys

  • intelide.xp --> d:\windows\system32\driver\intelide.sys
* The d: stands for the drive letter as it appears on your system.

3. Using RegEdit, we will load the System hive of the drive we've connected, and we will import the registry data to it.

a. open RegEdit, stand on Local Machine.

b. in the File menu choose "Load Hive". now browse and select the file:

d:\windows\system32\config\system.name it as "OldSys". it will now appear as another hive in Regedit.

c. to import the registry data found in the file Merge.xp (or merge.2k) we will first need to update it to fit the new situation:

Open the file Merge.xp using Notepad. Run a Find & Replace from "\SYSTEM\" to "\OldSys\"

Now save the file as: Merge.reg

Double-click on it to make the actual import process.

d. when finished, stand on the "OldSys" hive and choose "Unload Hive" from the File menu.

That's it! now replace the drive into your new system and boot to victory!Note: if you're changing your system from and old IDE drive to a brand new SATA drive, this procedure can only work if your Bios can turn off the "SATA Native mode" and emulate it to be recognized as an IDE.

Cheers,

YaronM