Windows – Update/change hard disk drivers without booting Windows

drivershard drivevirtualizationwindows

I am trying to convert a physical server to a virtual one. I know that there are tools for this, but they either cost a lot or have extreme requirements.

I have tried to use Norton Ghost to make a copy of the disk, then restore that copy inside a VM. I made this work, but after I restore it, Windows won't boot. I can boot to a PE disk and verify that the file system is intact, but I think the hard disk drivers for Windows are wrong. The physical server was a Dell PowerEdge 1950 with a SCSI PowerEdge RAID Controller (PERC) 6 card.

Is there a way to add the VM's hard disk drivers to the drive from a Windows PE disk, without booting into Windows? I am using Virtual Server 2005.

I know that I can do it on the physical machine before I take the image, but it is a production machine that I don't want to take a chance with.

EDIT 1: Virtual Server 2005 Migration Toolkit has extreme requirements, because it needs ADS installed. The only time I sucessfully used it I had to build a whole temporary test network around it (a big hassle). There is also System Center's VMMC (very expensive).

When I try to boot the new VM, I see the POST screen, and if I have a bootable CD loaded it will boot to the CD. If not, then the CPU usage drops to 0 and the VM locks up. I have tried to update the hal.dll in the system32 folder, but that didn't fix it.
I think that I need to disable the SCSI driver from the 1950 that is trying to get loaded.
The VM/physical machine that I am converting is running Windows 2003.

Best Answer

Yes.

Most virtualization systems support IDE devices, so replacing the HAL and the Miniport drivers is often enough:

  1. Boot the recovery console
  2. Use EXPAND HAL.DL_ C:\WINDOWS\SYSTEM32
  3. Use EXPAND NTOSKRNL.EX_ C:\WINDOWS\SYSTEM32
  4. Enable the ATAPI driver with ENABLE ATAPI SERVICE_BOOT_START

Note that most virtual machine mangers have some virtual disk driver (VMWare's is called VMSCSI.SYS) that you can simply copy over whatever the system's ATAPI.SYS file.

  5. Disable your old disk drivers (depends on your VM). Try LISTSVC and look for ones marked SERVICE_BOOT_START, for example: DISABLE MYSCSIVENDOR

Of course, if you decided to copy over the virtual disk driver, you could simply copy it over the old disk drivers.

At this point, you should be able to boot your guest up normally.