2010-03-28

Inject VMware drivers into Source OS before P2V

P2V a machine - who does not want to get rid of all their physical machines to get the rid of the old hardware? If so raise you hand!

So now that we have that out the way - P2V'ing a Windows 2000 Operating System is not always as straight forward as a the other operating systems.

Take into account the following scenario. you have a Windows 2000 SP6 Server running a customized app. You start the Convert process, either using Converter Standalone - or the Guided consolation plug-in. You let the process run - and anything from 45minutes to  hours later - you have a new VM registered in you virtual infrastructure.

Yey! - But - the conversion process - reported as failed somewhere between 97-99%.

The VM - is there so you power on the VM - and BAM! Blue Screen!!!

  • STOP 0x7B INACCESSIBLE_BOOT_DEVICE

or

  • STOP 0x0000007B INACCESSIBLE_BOOT_DEVICE

And of course I could not boot the converted machine.

This brought me to this KB article on VMware's site - which provided this solution
Injecting SCSI controller device drivers into Windows

Before you convert the virtual machine you should perform the following on the source OS.

All Windows Versions (vmscsi only)

To copy the appropriate disk controller driver from a working virtual machine with a Windows guest operating system:

Download the VMware SCSI Disk Controller driver diskette here.

Copy the contents of the floppy either by mounting it or extracting the files

Right-click vmscsi.inf and click Install. The VMware SCSI drivers are installed.

Restart the source machine to complete installation.


Windows XP / 2000 / NT (buslogic and vmscsi)

Find a working VM installed with the same OS. Export these 3 registry keys.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BusLogic

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\
pci#ven_104b&dev_1040

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmscsi

(Note
: The vmscsi service registry key may not exist if VMware Tools is not installed on the virtual machine.)

Import these 3 registry keys onto your source machine.

Perform your conversion


Windows 2003 (lsilogic and vmscsi)

Find a working VM installed with the same OS. Export these 3 registry keys.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\symmpi

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\
    pci#ven_1000&dev_0030

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmscsi

    (Note
    : The vmscsi service registry key may not exist if VMware Tools is not installed on the virtual machine.)

    Import the registry keys onto your source machine.

    Restart the source to complete installation.

    Perform another conversion with VMware Converter.

    Now will this be needed every time? No! I have performed many a P2V on all of the above Operating Systems - without any problems at all and without injecting the registry keys beforehand. But for the case that the conversion will fail  - this should help you out immensely.

    Personally -  I would make this best practice and inject the drivers in by default.

    5 comments:

    BrianS said...

    Nice article. Will store this away for a rainy day. Have not had much issue with this yet.

    Theles said...

    I have a problem with this procedure. What should I do if I don't have any Windows 2000 machine virtualized? In fact, I have only one physical Win2000 machine working with an specific app running, and I couldn't P2V it yet.

    Maish said...

    Hi Theles,
    You can always install a new VM with Windows 2000 and retrieve the files and registry keys you need from their. this of course can be done with any of the VMware products (VMplayer for example)

    Theles said...

    Hello!. Thanks for your comment Maish. As a matter of a fact, I already did that :). I've installed a Win2000 machine in the vcenter, and installed the vmtools to obtain the drivers and registry keys. But, installing the win2000 with scsi controller, even with the vmware scsi driver didn't work. the only way to install the win2000 was choose the IDE controller as the primary controller, and after the vmtools was installed, I could add an scsi disk and controller. And so, I could get the registry keys and files.

    The P2V process is running right now, I'll keep you guys informed. thx.

    Theles said...

    Hello again. Well, I did everything as it was wrote above, and in 97% it gave the error again. But, for my surprise, now the vm was able to boot up, and the machine was P2Vlized :)

    That was awkard. It's that normal? The error continues to came up but the machine is able to boot up? Thank god I'd try to boot it :D

    Thanks Maish. This blog is great, I'll recommend it!
    Cya!