Skip to content

Instantly share code, notes, and snippets.

@dandye
Last active February 7, 2024 18:34
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save dandye/127ca7b200b66af4036dc0ffda488879 to your computer and use it in GitHub Desktop.
Save dandye/127ca7b200b66af4036dc0ffda488879 to your computer and use it in GitHub Desktop.
How to install vmware-vdiskmanager
tar xvf VMware-vix-disklib-6.0.2-3566099.x86_64.tar.gz
cd vmware-vix-disklib-distrib/bin64
sudo ln -s $(pwd)/vmware-vdiskmanager /usr/bin/vmware-vdiskmanager
ls -l /usr/bin/vmware-vdiskmanager
cd ../lib64/
sudo ln -s $(pwd) /usr/lib/vmware
sudo bash -c "echo $(pwd) > /etc/ld.so.conf.d/vmware-vix-disklib.conf"
sudo ldconfig
@dandye
Copy link
Author

dandye commented Dec 30, 2016

[ec2-user@ip-10-0-63-192 ~]$ cd vmware-vix-disklib-distrib/bin64/
[ec2-user@ip-10-0-63-192 bin64]$ sudo ln -s $(pwd)/vmware-vdiskmanager /usr/bin/vmware-vdiskmanager 
[ec2-user@ip-10-0-63-192 bin64]$ ls -l /usr/bin/vmware-vdiskmanager
lrwxrwxrwx 1 root root 67 Dec 30 20:01 /usr/bin/vmware-vdiskmanager -> /home/ec2-user/vmware-vix-disklib-distrib/bin64/vmware-vdiskmanager
[ec2-user@ip-10-0-63-192 bin64]$ cd ../lib64/
[ec2-user@ip-10-0-63-192 lib64]$ sudo ln -s $(pwd) /usr/lib/vmware
[ec2-user@ip-10-0-63-192 lib64]$ ls -l /usr/lib/vmware
lrwxrwxrwx 1 root root 47 Dec 30 20:13 /usr/lib/vmware -> /home/ec2-user/vmware-vix-disklib-distrib/lib64
[ec2-user@ip-10-0-63-192 lib64]$ sudo bash -c "echo $(pwd) > /etc/ld.so.conf.d/vmware-vix-disklib.conf"
[ec2-user@ip-10-0-63-192 lib64]$ sudo ldconfig
[ec2-user@ip-10-0-63-192 lib64]$ vmware-vdiskmanager --help
vmware-vdiskmanager: invalid option -- '-'
VMware Virtual Disk Manager - build 4604867.
Usage: vmware-vdiskmanager 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
                            created.
     -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.
     -e                   : check for disk chain consistency.
     -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
                            destination.
  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/scsi adapter : [1MB, 8192.0GB]
                           buslogic adapter : [1MB, 2040.0GB]
        ex 1: vmware-vdiskmanager -c -s 850MB -a ide -t 0 myIdeDisk.vmdk
        ex 2: vmware-vdiskmanager -d myDisk.vmdk
        ex 3: vmware-vdiskmanager -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
        ex 4: vmware-vdiskmanager -x 36GB myDisk.vmdk
        ex 5: vmware-vdiskmanager -n sourceName.vmdk destinationName.vmdk
        ex 6: vmware-vdiskmanager -r sourceDisk.vmdk -t 4 -h esx-name.mycompany.com \
              -u username -f passwordfile "[storage1]/path/to/targetDisk.vmdk"
        ex 7: vmware-vdiskmanager -k myDisk.vmdk
        ex 8: vmware-vdiskmanager -p <mount-point>
              (A virtual disk first needs to be mounted at <mount-point>)

@dam2k
Copy link

dam2k commented Dec 22, 2018

Thanks, it works, but you first need to register a free account from vmware.com, then download the binaries from here: https://code.vmware.com/web/sdk/6.7/vddk

@gkostov
Copy link

gkostov commented Feb 7, 2024

Thanks, it works, but you first need to register a free account from vmware.com, then download the binaries from here: https://code.vmware.com/web/sdk/6.7/vddk

Thanks a lot! I was looking everywhere for a working vdiskmanager. And after adding the required VC++ 12.0 runtime it did the job :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment