I quite often use my Windows XP VM running under Vmware Server 1.0.5 (Debian Unstable) and because I still don’t have RAID I am forced to try every possible performance optimizations.

Latest and greatest was when successfully converting my 10 GB preallocated IDE disk to LSILogic SCSI following procedure close to this one. (Try it on your risk !)

1.Create LSI Logic disk:

vmware-vdiskmanager -c -s 100mb -a lsilogic -t 0 tempDisk.vmdk

  1. Add SCSI definitions in your VMX file:
scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "tempDisk.vmdk"
  1. Boot the VM and install LSI Logic driver – use WHQL 1.20.18.00 (at least I could not install the latest version)

  2. Make backup of the VM Disk !

  3. Open the disk definition file (.vmdk). Get from there the disk size (sum of all extents)

# Extent description
RW 20971520 FLAT "WXP-flat.vmdk" 0

Then create another disk

vmware-vdiskmanager.exe -c -s 20971520 -a lsilogic -t 1 anotherTemp.vmdk

This one is only needed so you can get the new geometry and replace it in the original .vmdk

  1. Replace old geometry with new from anotherTemp.vmdk. In my case I replaced this
ddb.adapterType = "ide"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "16"
ddb.geometry.cylinders = "16383"

with this

ddb.geometry.cylinders = "1305"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "lsilogic"
  1. Update you VMX file so scsi0:0 points to the main disk image.  Also you can remove the old IDE definitions.

  2. Boot your VM and have fun.

Couple of other performance suggestions:

  1. Always defrag your guest operating system disk.

  2. Use

    MemTrimRate = "0"

  3. Use

    scsi0:0.mode = "independent-persistent"

  4. Keep your guest operating system as light as possible. Turn off themes, effects, unneeded services etc.

Resources used:

http://sanbarrow.com/ide2scsi.html http://communities.vmware.com/thread/50084

Comments

Comment by Effie on 2008-09-10 21:35:16 +0300

thanks for a complete procedure. I’ve managed to get this to work when the guest is XP. However, with linux (fedora) as guest, I’m still getting kernel panics. Can you help?

Comment by Peter on 2008-09-11 10:06:37 +0300

After changing it to scsi you probably have to modify your GRUB/LILO, fstab and everywhere it was /dev/hda1 (for example) to /dev/sda1

Comment by Sridharaya on 2009-03-05 16:52:21 +0300

thanks !! very helpful post!

Comment by Keva Ellingsen on 2009-04-23 20:51:34 +0300

You are a very smart person!

Comment by Seth on 2009-05-16 13:51:28 +0300

What editor software do you use to modify VMDK? Thanks

Comment by Peter on 2009-05-16 13:59:00 +0300

any text editor will do (vim/notepad whatever)

Comment by Jack Wilson Jr on 2010-02-05 22:24:12 +0300

Thanks for very informative post. May the Force be with you

Comment by Einar on 2010-10-04 01:06:28 +0300

Use Notepadd ++

Comment by nextcube on 2011-10-23 03:30:33 +0300

Worked perfectly! Windows XP guest on VMware Fusion 3.1.3. Actually, since I had VMware tools installed in the VM, I didn’t need to install the LSI drivers – VMware set the new disk up as Buslogic and it worked fine.

Comment by David on 2011-12-13 14:48:57 +0300

Hi,

Im not all clued up with this stuff, im using vmWare on Mac and now im stuck with a 60G VM which i want to expand. The commands you’re suggesting, should i have my vmWare Machine library loaded or should I have the machine I want to expand loaded and am I to use terminal to execute these commands?

thank you in advance.
d

Comment by Samad on 2012-09-29 05:37:57 +0300

Hi,
i spend 3+ hour but not success, but after ur post i am able to run my damaged virtual guest pc.
Thanks.