I am attempting to split a disk to 2gb chunks. I am running Vmware Workstation 11 on ubuntu. The original is a single file vmdk, drive size is 500gb, of which 120gb is used.
I am running the following command.
vmware-vdiskmanager -r ./win7x64.vmdk -t 1 ./new/win7x64.vmdk
I am trying to get 2gb split files so that I can move the vm around on a usb3 drive. The problem I am having is that it is making 8gb files. Any thoughts on how to get this to work.
That's interesting. I have to admit that I didn't try this with VMware Workstation 11 yet.
How does the newly create .vmdk header/descriptor file looks like (please attach it to a reply post)?
Does the help output for vmware-vdiskmanager show any additional new command line options?
André
Here is a dir listing of the files being created. Actually I was wrong the file sizes are 14gb, 9 gb. See below. I am still letting it run,
I launched the conversion with - Below is the vmdk.
vmware-vdiskmanager -r ./win7x64.vmdk -t 1 ./new/win7x64.vmdk
14G win7x64-s001.vmdk
9.6G win7x64-s002.vmdk
total 32368580
drwxrwxrwx 1 alexj alexj 368 Jan 5 19:17 ..
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s004.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s005.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s006.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s007.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s008.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s009.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s010.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s011.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s012.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s013.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s014.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s015.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s016.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s017.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s018.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s019.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s020.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s021.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s022.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s023.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s024.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s025.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s026.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s027.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s028.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s029.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s030.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s031.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s032.vmdk
drwxrwxrwx 1 alexj alexj 152 Jan 5 19:17 win7x64.vmdk.lck
-rwxrwxrwx 1 alexj alexj 1745 Jan 5 19:17 win7x64.vmdk
-rwxrwxrwx 1 alexj alexj 14651686912 Jan 5 19:22 win7x64-s001.vmdk
-rwxrwxrwx 1 alexj alexj 10298589184 Jan 5 19:25 win7x64-s002.vmdk
drwxrwxrwx 1 alexj alexj 184 Jan 5 19:28 .
-rwxrwxrwx 1 alexj alexj 8197074944 Jan 5 19:28 win7x64-s003.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=4419861b
parentCID=ffffffff
isNativeSnapshot="no"
createType="twoGbMaxExtentSparse"
# Extent description
RW 32768000 SPARSE "win7x64-s001.vmdk"
RW 32768000 SPARSE "win7x64-s002.vmdk"
RW 32768000 SPARSE "win7x64-s003.vmdk"
RW 32768000 SPARSE "win7x64-s004.vmdk"
RW 32768000 SPARSE "win7x64-s005.vmdk"
RW 32768000 SPARSE "win7x64-s006.vmdk"
RW 32768000 SPARSE "win7x64-s007.vmdk"
RW 32768000 SPARSE "win7x64-s008.vmdk"
RW 32768000 SPARSE "win7x64-s009.vmdk"
RW 32768000 SPARSE "win7x64-s010.vmdk"
RW 32768000 SPARSE "win7x64-s011.vmdk"
RW 32768000 SPARSE "win7x64-s012.vmdk"
RW 32768000 SPARSE "win7x64-s013.vmdk"
RW 32768000 SPARSE "win7x64-s014.vmdk"
RW 32768000 SPARSE "win7x64-s015.vmdk"
RW 32768000 SPARSE "win7x64-s016.vmdk"
RW 32768000 SPARSE "win7x64-s017.vmdk"
RW 32768000 SPARSE "win7x64-s018.vmdk"
RW 32768000 SPARSE "win7x64-s019.vmdk"
RW 32768000 SPARSE "win7x64-s020.vmdk"
RW 32768000 SPARSE "win7x64-s021.vmdk"
RW 32768000 SPARSE "win7x64-s022.vmdk"
RW 32768000 SPARSE "win7x64-s023.vmdk"
RW 32768000 SPARSE "win7x64-s024.vmdk"
RW 32768000 SPARSE "win7x64-s025.vmdk"
RW 32768000 SPARSE "win7x64-s026.vmdk"
RW 32768000 SPARSE "win7x64-s027.vmdk"
RW 32768000 SPARSE "win7x64-s028.vmdk"
RW 32768000 SPARSE "win7x64-s029.vmdk"
RW 32768000 SPARSE "win7x64-s030.vmdk"
RW 32768000 SPARSE "win7x64-s031.vmdk"
RW 32768000 SPARSE "win7x64-s032.vmdk"
# The Disk Data Base
#DDB
ddb.adapterType = "lsilogic"
ddb.deletable = "true"
ddb.geometry.cylinders = "65270"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "4248704e82ae6ada1db537c04419861b"
ddb.toolsVersion = "9504"
ddb.uuid = "60 00 C2 98 cc 85 d4 fc-c0 47 75 9b 8a 5b ed 4e"
ddb.virtualHWVersion = "4"
What does the command's help show as available command line options?
Please post the output of vmware-vdiskmanager --help
I'd also appreciate if you could compress/zip one of the "clean" .vmdk file (e.g. win7x64-s030.vmdk), and attach it to a reply post, so I can take a look at its metadata.
André
Thank you for the quick response.
Below is the output from vmware-vdiskmanager help, also a dir listing of the final files, I let the process fully complete. I also attached the main vmdk file as well as a clean vmdk file. Again, Thank you very much for looking at this.
VMware Virtual Disk Manager - build 2305329.
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
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>)
total 127106816
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s010.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s011.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s012.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s013.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s014.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s015.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s017.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s018.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s019.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s020.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s021.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s022.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s023.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s024.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s025.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s026.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s027.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s028.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s029.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s030.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s031.vmdk
-rwxrwxrwx 1 alexj alexj 2097152 Jan 5 19:17 win7x64-s032.vmdk
-rwxrwxrwx 1 alexj alexj 1745 Jan 5 20:03 win7x64.vmdk
-rwxrwxrwx 1 alexj alexj 14651686912 Jan 5 20:03 win7x64-s001.vmdk
-rwxrwxrwx 1 alexj alexj 10298589184 Jan 5 20:03 win7x64-s002.vmdk
-rwxrwxrwx 1 alexj alexj 16631660544 Jan 5 20:03 win7x64-s003.vmdk
-rwxrwxrwx 1 alexj alexj 16512843776 Jan 5 20:03 win7x64-s004.vmdk
-rwxrwxrwx 1 alexj alexj 16621699072 Jan 5 20:03 win7x64-s005.vmdk
-rwxrwxrwx 1 alexj alexj 15161622528 Jan 5 20:03 win7x64-s006.vmdk
-rwxrwxrwx 1 alexj alexj 12532056064 Jan 5 20:03 win7x64-s007.vmdk
-rwxrwxrwx 1 alexj alexj 16048455680 Jan 5 20:03 win7x64-s008.vmdk
-rwxrwxrwx 1 alexj alexj 11700142080 Jan 5 20:03 win7x64-s009.vmdk
-rwxrwxrwx 1 alexj alexj 2162688 Jan 5 20:03 win7x64-s016.vmdk
The metadata in the files basically looks ok and reflects the increased maximum file size (~15.6GB). It looks like VMware decided to increase the split .vmdk size, which may certainly decrease the number of .vmdk files, but also make it impossible to store them on file system which do not support large file sizes. It also looks like this change was made in a hurry, because the command's help has not been updated (yet). Maybe we are lucky and jmattson can shed some light on this new behavior, and whether there's a way to still create 2GB files when converting disks!?
André
I appreciate you looking at this, as I was thinking I was doing something wrong. Hopefully there will be some sort of update. I wanted to be able to carry a vm on a usb3 ssd that I can operate on multiple OS (windows, mac and linux). So I was hoping to use fat32 which works on most OSes. Thanks again
Hmmm...It looks like the 2GB sparse format is being phased out, and disks are now limited to 32 extents, meaning that the capacity determines the size of the extents. Moreover, it seems that the minimum extent size is 4GB, regardless of capacity. I will file a bug, and we'll see where it goes.
The new split disk scheme
Capacity Extent size
================================
<=128GB 4GB (increased from 2GB)
>128GB && <2TB Capacity / 32 (so maximum of 32 extents)
>=2TB 2TB
Since your extents are 8GB you will not be able to transport it in FAT32 formatted USB. Could you try formatting your usb to exFAT, to transport this file?
vmware-vdiskmanager 's help description definitely needs to be updated to reflect this.
ALL,
I have seen were customers running VMware Workstation under Linux are seeing split files as big as 14-16GB!?! How can that be? This was with the latest variant of VMware Workstation for Linux too.
I imagine there must be a gargantuent bug in VMware workstation for Linux, though I see no report of it or anything indicating a work around or such.
How can one determine what the size of their extents are and what impact it has on the total maximum size of a split file chunk?
Stuart
That's no bug, it's by design. Please see the latest reply in this thread (Re: Splitting disk to 2gb chunks) which explains how .vmdk sizes are calculated.
If you want to know what the maximum size of each chunk can be, take a look at the descriptor file which lists the chunks with their max. sizes in 512kB blocks.
André
