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
Reboot into XP on SCSI
Reboot into XP and allow XP to install new drivers if it finds anything new.