Update: This is for a SCSI disk controller 0x7B error. There is some information here http://support.microsoft.com/kb/314082 from Microsoft regarding IDE Controller Driver Injection into an image and I have tried it successfully.
I have just taken a ghost image of a Dell Poweredge 1850 which has a Perc4 SCSI controller and put the image onto a USB external Hard Drive.
My goal was to create a VMWare Virtual Machine with a USB Controller and attach the USB External HDD, boot from a Ghost WinPE ISO and restore the Ghost Image into the VM.
But when I finished the 3hour restore I was confronted with a BSOD with a STOP 0x7B error:
So to get the VM working:
I installed another copy of Windows 2003 Server into a fresh VM and followed the instructions in the VMWare Knowledge Base article Injecting SCSI controller device drivers into Windows when it fails to boot after converting it with VMware Converter
I created a small 8GB VM with LSI Logic Controller and installed Windows 2003 Server and during install add the VMWare drivers by adding a floppy image as listed in the VMWare KB from here http://download3.vmware.com/software/vmscsi-22.214.171.124.flp
After installing Windows Server 2003 in the fresh VM I reconfigured the VM to attach the vmdk file from the BSOD 0x7B image as a second disk.
On booting into the working Windows 2003 Server Environment I went into disk management and had to assign a drive letter to the BSOD 0x7D partition which contained the \WINDOW directory. After assigning a drive letter I could access the Ghost restored \WINDOWS partition from E:\WINDOWS.
I was going to follow the VMWare KB and Copy of the LSI Logic disk controller driver file located in %systemroot%\system32\drivers\symmpi.sys to my E:\WINDOWS\system32\drivers but when I went to do that the driver already existed and was newer so I skipped that step.
I then started regedit and exported the registry keys as follows from the working windows 2003 install. VMware tools weren’t installed so I didn’t do the vmscsi steps.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\symmpi HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\ pci#ven_1000&dev_0030
Next in Regedit I selected the HKLM registry KEY and clicked File ==> Load Hive… and navigated to E:\Windows\system32\config and selected the “SYSTEM” file. When you use load hive Regedit prompts you to give the Top Level Key a name I entered “OTHERSYSTEM”.
The next step, using notepad.exe was to do a find and replace on the exported registry files so that I could import the settings into the BSODing SYSTEM hive.
The trick is that in the Loaded SYSTEM hive there is no CurrentControlSet key you need to modify the ControlSet001 values(I believe they are copied into CurrentControlSet during the next boot)
This image shows the before and after modifying the registry files to get the settings into the right spot:
Once the registry files are correct you just import them.
Then from there I shutdown the working Windows 2003 Server VM. Removed the BSODing disk and then boot the VM that had the BSOD 0x7B error. The registry settings allowed the correct SCSI drivers to load and the machine to boot.
I found that I had re-activate Windows 2003 _before_ I was allowed to log in. So a call to Microsoft ensued because at that point there is was working Network adapter to do it over the internet.
Anyway… Until today I hadn’t had to do this for years but thought I would blog this just in case it comes up again.
Server shuffles can be fun.