How to Convert IDE to SCSI Disk on VMware ESX

Virtual Machine Conversion from IDE to SCSI

You may find the need to be able to move virtual machines around from one
platform to another. For example, I encourage people to utilize VMware
Workstation in order to work on a virtual machine while on the go. I have
had several instances where a virtual machine was created on VMware
Workstation, but unfortunately was not created in legacy mode or had an
IDE drive. As a result, when attempting to migrate to ESX, it would fail until
some changes were made.

Therefore, here we will examine changing an IDE drive to a SCSI drive.
Before we change the settings, we need to get the SCSI drivers in the system
first.The easiest way to do this is to add another hard disk to the virtual
machine as a secondary drive. Configure this drive to be a SCSI drive. Start
the virtual machine with the new drive attached and, the SCSI drivers are
now in place, allowing us to continue and really edit the files. When we open
the descriptor file for a virtual machine using an IDE drive, it looks like the
sample in Code Listing 5.4.

Code Listing 5.4 Descriptor File for a Virtual Machine Using an IDE Drive
# Disk DescriptorFile
version=1
CID=2af6d34d
parentCID=ffffffff
createType="twoGbMaxExtentSparse"
# Extent description
RW 4192256 SPARSE "Windows-s001.vmdk"
RW 4192256 SPARSE "Windows-s002.vmdk"
RW 4096 SPARSE "Windows-s003.vmdk"
# The Disk Data Base
#DDB
ddb.adapterType = "ide"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "16"
ddb.geometry.cylinders = "8322"
ddb.virtualHWVersion = "4"
ddb.toolsVersion = "6404"
Starting with the ddb.adapterType you can see that this was indeed an
IDE drive.There are a total of three different options for this setting.We’ll
discuss each in this section.

ddb.adapterType = “buslogic”
This entry converts the disk into a SCSI-disk with a BusLogic Controller.
This is the standard for Windows 2000 virtual machines.
ddb.adapterType = “lsilogic”
This entry converts the disk into a SCSI-disk with LSILogic Controller.This
is the standard for Windows 2003 virtual machines.
ddb.adapterType = "ide"
This entry converts the disk into an IDE-disk with Intel-IDE Controller.
Next, let’s open the SCSI disk that we used to get the drivers in the virtual
machine and use it to give us the section, heads, and cylinder values we
need.
ddb.adapterType = "buslogic"
ddb.geometry.cylinders = "522"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
Put this all together and we have a new SCSI disk for our virtual
machine.
There is one change left to be done, however.We will need to change the
ddb.virtualHWVersion.The ddb.virtualHWVersion is dependent upon which
VMware platform you are using.You may need to change the version number
to get the virtual machine to start in certain cases, namely moving a virtual
machine in to ESX Server.
Change the ddb.virtualHWVersion = “4” and make it
ddb.virtualHWVersion = “3”.You now have a legacy virtual machine disk file
you have converted from IDE to SCSI.You’ve also brought the virtual
machine disk file down to legacy mode so that it can run on ESX.
# Disk DescriptorFile
version=1
CID=826d3b6e
parentCID=ffffffff
createType="twoGbMaxExtentSparse"
Modifying VMs • Chapter 5 207
# Extent description
RW 4192256 SPARSE "Windows-s001.vmdk"
RW 4192256 SPARSE "Windows-s002.vmdk"
RW 4096 SPARSE "Windows-s003.vmdk"
# The Disk Data Base
#DDB
ddb.adapterType = "buslogic"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "255"
ddb.geometry.cylinders = "522"
ddb.virtualHWVersion = "3"
ddb.toolsVersion = "6309"
To complete this process we need to make an adjustment in the vmx file
in order to change the IDE values to SCSI. Code Listing 5.5 is an example of
a disk file that’s been configured to use an IDE.

Code Listing 5.5 Configuring a Disk to Use an IDE
config.version = "8"
virtualHW.version = "4"
scsi0.present = "TRUE"
memsize = "200"
ide0:0.present = "TRUE"
ide0:0.fileName = "Windows.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
floppy0.fileName = "A:"
ethernet0.present = "TRUE"
usb.present = "TRUE"
sound.present = "TRUE"
sound.virtualDev = "es1371"
208 Chapter 5 • Modifying VMs
displayName = "Windows XP Professional 1"
guestOS = "winxppro"
nvram = "winxppro.nvram"
ide0:0.redo = ""
ethernet0.addressType = "generated"
uuid.location = "56 4d b7 df d7 1d 42 ca-3e 81 5d a3 5e 05 7a f7"
uuid.bios = "56 4d b7 df d7 1d 42 ca-3e 81 5d a3 5e 05 7a f7"
tools.remindInstall = "FALSE"
ethernet0.generatedAddress = "00:0c:29:05:7a:f7"
ethernet0.generatedAddressOffset = "0"
ide1:0.autodetect = "TRUE"
ide1:0.startConnected = "TRUE"
tools.syncTime = "FALSE"
To finish the change from IDE to SCSI we need to adjust these lines in
the vmx file (see Table 5.2).
Table 5.2 VMX Old and New Settings
From the Old Settings To the New Settings
config.version = “8” config.version = “6”
virtualHW.version = “4” virtualHW.version = “3”
ide0:0.present = “TRUE” scsi0.present = “TRUE”
ide0:0.fileName = “Windows.vmdk” scsi0:0.present = “TRUE”
scsi0:0.fileName = “Windows.vmdk”
Now we have completed downgrading the virtual hardware and also
changed a virtual machine from using an IDE drive to a SCSI drive.This virtual
machine will now start and run in VMWare ESX server. By using the
example of taking a virtual machine from VMware Workstation and getting it
to run to VMware ESX Server, we have gone from one extreme of the
VMware product line (workstation) to the other extreme (ESX Server).