Sanbarrow.com


IDE 2 SCSI

IDE 2 SCSI converter for XP

 

This may be quite useful for ESX-users: I am testing a patch that converts a IDE-disk into a SCSI-disk. It is no automatic tool - some manual work is required. You will have to edit the disk-descriptor file - so in case you have a monolithic sparse disk it is highly recommended to convert this into a disktype that uses a separate descriptor-file. Otherwise you have to edit a large binary file - better don't try that!
Here comes a list of the tasks you have to do

  • 1: Make a backup of your disk
  • 2: Get the SCSI disk geometrie
  • 3: Edit the descriptorfile
  • 4: Create a new *vmx file
  • 5: Boot the new VM with Bart PE
  • 6: Inject some files
  • 7: Edit the registry
  • 8: Reboot into XP on SCSI

Make a backup of your disk


This step is very important - don't risk anything - it works for me but I don't know if it works for you.

Get the SCSI disk geometrie


You will need the vmware-vdiskmanager to do this - if you know any other method please let me know. Open the disk-descriptorfile with a text-editor like notepad. You will find something like

# Disk DescriptorFile
version=1
CID=fffffffe
parentCID=ffffffff
createType="twoGbMaxExtentSparse"
# Extent description
RW 4192256 SPARSE "ide-s001.vmdk"
RW 4192256 SPARSE "ide-s002.vmdk"
RW 4096 SPARSE "ide-s003.vmdk"
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "3"
ddb.adapterType = "ide"
ddb.geometry.cylinders = "8322"
ddb.geometry.heads = "16"
ddb.geometry.sectors = "63"

We need the disksize in sectors so we have to sum up the size of all 3 pieces.
4192256 + 4192256 + 4096 = 8388608
Now use the vmware-vdiskmanager and run this command:
vmware-vdiskmanager.exe -c -s 8388608 -a buslogic -t 1 scsi.vmdk
Don't use a preallocated type of disk - because we don't need this disk later.

Open the file scsi.vmdk and take this lines
ddb.adapterType = "buslogic"
ddb.geometry.cylinders = "522"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"

Edit the descriptorfile


and replace the c/h/s entries for the ide-geometrie with the scsi-values
# Disk DescriptorFile
version=1
CID=fffffffe
parentCID=ffffffff
createType="twoGbMaxExtentSparse"
# Extent description
RW 4192256 SPARSE "ide-s001.vmdk"
RW 4192256 SPARSE "ide-s002.vmdk"
RW 4096 SPARSE "ide-s003.vmdk"
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "3"
ddb.adapterType = "buslogic"
ddb.geometry.cylinders = "522"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"

Don't touch the CID or parentCID entries unless you know what you are doing!
I wish I could persuade my real IDE-disks to do this mutation-trick, too but they won't listen. That was the disk - you will need other cables and screws and fittings, too.

Create a new *vmx file


The new born SCSI-disk needs a SCSI-controller so you have to add this lines to your vmx.
scsi0.virtualDev = buslogic
scsi0.present = TRUE
Take a SCSI-connector cable and power-supply and plug it in.
scsi0:0.present = "TRUE"
scsi0:0.fileName = "ide.vmdk"

Boot the new VM with Bart PE


Now you can start the old IDE-XP and enjoy another BSOD or a very, very tired SCSI-XP which will sleep forever. All that is left to do now is to inject a couple of files and hack the registry of a dead XP. I prefer to do this kind of work with BartPE - you may use other methods - anyway for the registry editing you need something that can handle XP-registry - in this case the patches - which are actually *.reg files - were made with a 2k3 running from BartPE. Maybe this works with XP as well but I have not tested that.

Inject some files


I have one zip-file that I integrated into my BartPE - you may store it on a network-share. Copy this file into the Windows-directory and unzip it. Run copy.cmd

Edit the registry


Run reg.cmd

Reboot into XP on SCSI


Reboot into XP and allow XP to install new drivers if it finds anything new.

Reboot into XP on SCSI