Friday, 5 September 2008

VMware ColdClone – Unable to determine Guest OS

So for anyone that has migrated a physical server to a virtual server (P2V’ed), you may well have come across the “Unable to determine Guest OS” message when using the ColdClone CD. For those of you who have not yet migrated a physical server to an ESX Environment I will quickly run through the main two ways you will see…

HotClone – This refers to using the VMware Converter plugin from within VirtualCenter itself. This process is done with the target server up and running, so really should only be used on servers with static data, as during the migration users, other admins, etc will still have access to the server. The pre-requisites are licensing for Converter and the plugin installed and enabled in VirtualCenter.

To initiate a HotClone of a physical server you select the cluster or host ESX server you wish to migrate the server to, now right click and select Import Machine… The wizard will then start and guide you through the process of importing the machine. I am not going to go into detail about the HotClone process as I am going to move onto the ColdClone process as this is where you will see the error I mentioned.

ColdClone – Considered the safest form of migrating a physical server to a VM. This is mainly due to the fact that the server is effectively down during the migration process. The ColdClone process uses a bootable ISO image, to bring the server up in WinPE that runs VMware Converter. So as with a standard installation of Windows, the drivers included in the base build may not be relevant to the hardware you are using.

So the “Unable to determine Guest OS” is, from my experience, normally due to WinPE not being able to access the harddisks. In most cases this will be due to the Array driver not being part of WinPE.

Included with the ColdClone.iso (which is available to download from http://www.vmware.com/, providing you have the Enterprise license for Converter) is the PETOOL.EXE. This can add drivers to WinPE, however I have had mixed results using this so I have also got a manual way of doing it, which I will now detail.

Step 1 - Download the required drivers
Depending on your hardware vendor download their drivers for the Array Controller, you will need the driver that would be used during the text phase of a Windows server, the same driver that you would use the F6 option during the Windows installation process.

Step 2 – Extract the driver files
Once the download has completed extract the drivers to a folder on your computer.

Step 3 – Extract the ColdClone.iso
Extract the contents of the ColdClone.iso to a local folder on your computer.

Step 4 – Create the driver folder
Browse to \i386\System32\Drivers in the extracted ISO. Create a folder for your driver, e.g. PERC.

Step 5 – Add the drivers
Now copy the drivers to the folder you just created.

Step 6 – Edit winpeoem.sif
Browse to \i386\System32 and edit winpeoem.sif in a text editor, e.g. Notepad. Now find the following lines in the file:

[OemDriverParams]
OemDriverRoot= "drivers"
OemDriverDirs= vmscsi, Adaptec, Emulex, QLogic

These lines represent the drivers that will be loaded, so now you need to add the folder that contains your drivers. See example below:

[OemDriverParams]
OemDriverRoot= "drivers"
OemDriverDirs= vmscsi, Adaptec, Emulex, QLogic, PERC

Save the file.

Step 7 – Create a bootable ISO
Now create a bootable ISO (and/or CD) using the modified ColdClone files.

You should now be able to test this by booting a server up using the CD/ISO and checking that it can now see the hard disks. This process can be repeated to add multiple drivers, giving you one ColdClone CD/ISO that will work with all your servers.

3 comments:

Anonymous said...

Hi,

I have tryed this in Vista machine to VM image to then imported into VM workstation 6.

I just used Vm convertor to convert the vista while its running and tell it to save the iso files to and external drive. Then import the files from external drive to the VM workstation and it works fine now error no nothing.


But i have to do this on the phycial server soon so thanks for the headsup. Wil see how it goes but i think if i do it while the network cable is unplugged it should be ok.. well that's my guess anyways.

Anonymous said...

I got struck with the last step of making the pointing the additional driver information to the Clone D.Your blog was very helpful.
Thanks

Michele said...

Hi and thanks for this post. I've a question: which OS type driver i have to download for cold clone? On device site i can download dirvers for WindowsNT, 2000,XP ecc...What's right for virtualize a debian with cold clone?
Thanks again :)