Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I created an image of a Windows Server 2008 system using the free VMware Player and set the maximum hard drive size to 100GB. I then gave those image files - 30GB at the time - to a server hosting company. A few weeks later I asked them for a copy of them back; the image should not have changed much in size, but the files I got back were the full 100GB size.

I am not a VMware expert at all, so I have two questions:

  1. How/why did they expand the whole dynamic disk?
  2. Is there any way I can somehow shrink this image down to the size that actually contains data?

I tried the VMware converter, and it can't seem to read my image (vmdk) file; it just outputs a generic error.

share|improve this question

My speculation is that when they created the VM from your image they pre-allocated the full size of the images (this can have better performance). When they exported them you got the full image.

I doubt you can shrink the images with VMware player. VMware Workstation comes with vmware-vdiskmanager that can apparently convert from a fixed size disk to a growable disk reducing the size of the image. I have never tried this so I cannot say how well it works.

The manual is here:

share|improve this answer
I think you can do the same type of conversion with VirtualBox command line tools. – Joe Internet Aug 16 '11 at 7:02

I don't know about VMWare Player, but VMWare Workstation ships with vmware-vdiskmanager.exe command line utility. Find it C:\Program Files\VMware\VMware Workstation folder.

Here are the command line options:

    VMware Virtual Disk Manager - build 385536.
    Usage: vmware-vdiskmanager.exe OPTIONS <disk-name> | <mount-point>
    Offline disk manipulation utility
      Operations, only one may be specified at a time:
         -c                   : create disk.  Additional creation options must
                                be specified.  Only local virtual disks can be
         -d                   : defragment the specified virtual disk. Only
                                local virtual disks may be defragmented.
         -k                   : shrink the specified virtual disk. Only local
                                virtual disks may be shrunk.
         -n <source-disk>     : rename the specified virtual disk; need to
                                specify destination disk-name. Only local virtual
                                disks may be renamed.
         -p                   : prepare the mounted virtual disk specified by
                                the mount point for shrinking.
         -r <source-disk>     : convert the specified disk; need to specify
                                destination disk-type.  For local destination disks
                                the disk type must be specified.
         -x <new-capacity>    : expand the disk to the specified capacity. Only
                                local virtual disks may be expanded.
         -R                   : check a sparse virtual disk for consistency and attempt
                                to repair any errors.
         -D                   : make disk deletable.  This should only be used on disks
                                that have been copied from another product.

      Other Options:
         -q                   : do not log messages

      Additional options for create and convert:
         -a <adapter>         : (for use with -c only) adapter type
                                (ide, buslogic, lsilogic). Pass lsilogic for other adapter types.
         -s <size>            : capacity of the virtual disk
         -t <disk-type>       : disk type id

      Options for remote disks:
         -h <hostname>        : hostname of remote server
         -u <username>        : username for remote server
         -f <filename>        : file containing password
         -P <port>            : optional TCP port number (default: 902)
         -S                   : specifies that the source disk is remote, by default
                                the remote options are assumed to refer to the
      Disk types:
          0                   : single growable virtual disk
          1                   : growable virtual disk split in 2GB files
          2                   : preallocated virtual disk
          3                   : preallocated virtual disk split in 2GB files
          4                   : preallocated ESX-type virtual disk
          5                   : compressed disk optimized for streaming
          6                   : thin provisioned virtual disk - ESX 3.x and above

         The capacity can be specified in sectors, KB, MB or GB.
         The acceptable ranges:
                               ide adapter : [1MB, 2040.0GB]
                               scsi adapter: [1MB, 2040.0GB]
            ex 1: vmware-vdiskmanager.exe -c -s 850MB -a ide -t 0 myIdeDisk.vmdk
            ex 2: vmware-vdiskmanager.exe -d myDisk.vmdk
            ex 3: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
            ex 4: vmware-vdiskmanager.exe -x 36GB myDisk.vmdk
            ex 5: vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
            ex 6: vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 4 -h \
                  -u username -f passwordfile "[storage1]/path/to/targetDisk.vmdk"
            ex 7: vmware-vdiskmanager.exe -k myDisk.vmdk
            ex 8: vmware-vdiskmanager.exe -p <mount-point>
                  (A virtual disk first needs to be mounted at <mount-point>)

You can get a free VMWare Workstation trial.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.