Home
VMware Workstation (ide) to ESX (scsi) PDF Print E-mail
It can be a challenge to migrate your VMware Workstation (growable virtual disk) to and ESX based image. After a lot of google tries I found some guidelines to do the trick. First of all, ESX does not like the growable disk, so I used vmware-vdiskmanager to convert my disk to a single flat disk. After this, I edited my *.vmdk file descriptor and used vmkfstools to convert the disk.

First of all, convert your growable disk:

Disk types:
0 : single growable virtual disk
1 : growable virtual disk split in 2Gb files
2 : preallocated virtual disk
3 : preallocated virtual disk split in 2Gb files

Convert command:
$ vmware-vdiskmanager -r WinXP.vmdk -t 2 winxp.vmdk

Using log file /tmp/vmware-hs/vdiskmanager.log
Creating monolithic preallocated disk 'winxp.vmdk'
Convert: 100% done.
Virtual disk conversion successful.

Now we have flat disk image. My disk descriptor file is looking like this:
$ cat winxp.vmdk

# Disk DescriptorFile
version=1
CID=500e5200
parentCID=ffffffff
createType="monolithicFlat"

# Extent description
RW 33554432 FLAT "winxp-flat.vmdk" 0

# The Disk Data Base
#DDB

ddb.virtualHWVersion = "6"
ddb.toolsVersion = "7234"
ddb.geometry.cylinders = "16383"
ddb.geometry.heads = "16"
ddb.geometry.sectors = "63"
ddb.adapterType = "ide"
To change from IDE to SCSI we need to change 4 lines.
ddb.adapterType and ddb.geometry.* lines should be changed.

Adapter types:
ddb.adapterType = "buslogic" This entry converts the disk into a SCSI-disk with BusLogic Controller
ddb.adapterType = "lsilogic" This entry converts the disk into a SCSI-disk with LSILogic Controller
ddb.adapterType = "ide" This entry converts the disk into a IDE-disk with Intel-IDE Controller

I choose "lsilogic".
The geometry should be changed to, to find out which values you should use you can make a scsi disk descriptor file with vmware-vdiskmanager. We need the value for our sectors, that can be found in the descriptor. In my case, the amount of sectors are: 33554432
$ vmware-vdiskmanager -c -s 33554432 -a lsilogic -t 1 scsi.vmdk

Using log file /tmp/vmware-hs/vdiskmanager.log
Creating a split disk 'scsi.vmdk'
Virtual disk creation successful.

The new SCSI file descriptor:
$ cat scsi.vmdk

# Disk DescriptorFile
version=1
CID=48903cb8
parentCID=ffffffff
createType="twoGbMaxExtentSparse"

# Extent description
RW 4192256 SPARSE "scsi-s001.vmdk"
RW 4192256 SPARSE "scsi-s002.vmdk"
RW 4192256 SPARSE "scsi-s003.vmdk"
RW 4192256 SPARSE "scsi-s004.vmdk"
RW 4192256 SPARSE "scsi-s005.vmdk"
RW 4192256 SPARSE "scsi-s006.vmdk"
RW 4192256 SPARSE "scsi-s007.vmdk"
RW 4192256 SPARSE "scsi-s008.vmdk"
RW 16384 SPARSE "scsi-s009.vmdk"

# The Disk Data Base
#DDB

ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "2088"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "lsilogic"

Now, we can copy-paste the geometry from scsi.vmdk into winxp.vmdk (replace). Don't touch the CID or parentCID entries unless you know what you are doing!

The new file descriptor and the flat image (winxp* - two files) have to be on the ESX storage (copy them to the server if not). Conversion of the image can start now (vmware help - search for 'migrate workstation' ). The command to migrate the virtual disk is:

Convert command:
$ vmkfstools -i storage1/winxp.vmdk storage2/WinXP.vmdk

Destination disk format: VMFS thick
Cloning disk 'storage1/winxp.vmdk'...
Clone: 100% done.

The last thing is to start your VM.
Make a new 'custom' VM where you choose the option to use an already existing disk, and point the file browser to your winxp.vmdk. If every thing is ok, you can start your VM with no error.



Think twice before you make changes like this with a boot-disk.

Bluescreen 07b - mass-storage driver:
Activate the apropriate driver in the registry: intelide.sys or vmscsi.sys or symmpi.sys - you may have to add files as well.

Black screen with cursor blinking in the topleft of the screen:
Write a new partition boot-sector.

Comments (0)