When Windows is installed it searches it's driver database and installs the appropriate HBA driver so the boot loader can access the drive and boot the system. When an image is taken and cloned to a machine of an incompatible HBA type, Windows will fail to boot with a 7B (inaccessible boot device) error because it doesn't rescan for HBAs every boot.
What are ways of getting a Windows image that was created on a machine with one HBA type to clone onto another with an incompatible HBA type? For example non AHCI to AHCI, RAID to non-RAID, IDE to SCSI, etc...
Contraints:
- Free methods are preferable.
- The image can't be pre-syspreped and loaded with drivers for a bunch of different HBA types.
- I also may not have the system type the image was taken from in the first place.
- I'd like to stay away from the Windows repair approach because I think that makes other changes other than just fixing the HBA driver (if it even does fix the HBA driver).
The only way I've been able to get this to work is to:
- Install a fresh copy of Windows onto the machine I'm cloning to. F6 driver additions added if required.
- Extract the
CriticalDeviceDatabase
registry information and driver sys files with a script I wrote. - Image over the machine with the incompatible image.
- Boot up into ERD commander and attach to the Windows install and import the registry data and driver files I previously extracted.
This typically works however it's not particularly easy and ERD commander is aging. It's not even based on WinPE.
The reason I use ERD commander is that it can attach to the registry hive with read/write access and has read/write access to the disk. I use both of these capabilities to import registry data and driver files.
So far this approach has generally worked for me however I want to see what other ways people have to solve this problem considering the constraints I've listed.
Acronis Backup & Recovery (with the universal restore addon) can do this. In fact you can also create a customised acronis cd with all the drivers you wish to take care of things like sound cards, graphics cards, as well.
It's not free but not expensive at all (last license I purchased was around £50).
A machine should be sysprepped before it is cloned. Sysprepping will cause the clone to re-scan for drivers on the next boot, among other things. Any other service that supports a dissimilar restore is going to either transparently call sysprep or use a similar technology that mimics sysprep. I suggest finding a way to remove the "I can't sysprep this image" constraint, as it is a pretty unusual one.