The fillowing are 2 methods (I prefer the Method A, A3 is fast then B3+B4, But i do not know it is wrong or not?)
Method A:
A1. Run a disk defragmentation utility inside the Guest OS.
A2. Shrink disk in VMWare Tools or Compact disk in VM Settings
A3. Copy the disk file to an new file, then delete the old file and rename the new file name to the old file name.
Method B:
B1. Run a disk defragmentation utility inside the virtual machine.
B2. Shrink disk in VMWare Tools or Compact disk in VM Settings.
B3. Use the VMware Workstation defragmentation tool in VM Settings.
B4. Run a disk defragmentation utility on the host computer.
if there are better method then please post.
whats the point of step A 3 ? - that is already done when you run the shrink function via the vmware-tools
___________________________________
VMX-parameters- VMware-liveCD - VM-Sickbay
After reviewing both steps, the point of Step 3 in Method A is probably an attempt to ensure that the vmdk(s) for the VM are in one contiguous space on the host disk, and not broken up/fragmented by any little files. However, doing Step 3 in Method A does not guarantee that, so I would recommend the steps outlined in Method B.
its next to impossible to keep growing vmdks in a non fragmented state - so I would just run a good defragmentation tool on the host on a regular basis - I use OO-defrag which does a good job.
If split growing vmdks are used contig.exe from Sysinternals also works nice.
Just run
contig.exe -s *.vmdk
this defragments all vmdks - or pieces of split vmdks that are smaller than 2 Gb (a limitation of contig.exe)
___________________________________
VMX-parameters- VMware-liveCD - VM-Sickbay
The BEST way in my opinion is to use the fixed size VM... (preallocated). This keeps the VM as one file that does not change in size on the host HD. Then, run disk defrag in the VM, exit the VM, then run disk defrag on the host. No more fragmentation issue in the host, max speed.