VMware Communities
johncold342
Contributor
Contributor
Jump to solution

Unable to retrieve disk information: The file specified is not a virtual disk

I moved a VM folder containing the vmdk's from a Windows 10 Host to a Linux machine.

When opened the VM, I click con "play/start" button, the VM closes.

Looking at the VM settings I see vmplayer don't take the VM harddrive as valid:

"Unable to retrieve disk information: The file specified is not a virtual disk"

Trying to mount it using vmware-mount I get the same results:

vmware-mount -p Ubuntu\ 64-bit.vmdk

Failed to open disk: The specified file is not a virtual disk (16063)

Failed to get the list of partitions: The virtual disk specified is invalid.

I checked the md5 hashes to make sure there wasn't an error in the transfer. They are ok.

Since the error is instantaneous, I guess there is an error in the vmdk descriptor and not in the 4GB -s001.vmdk  s002.vmdk etc..

I'm not sure If I need to change anything...

# file Ubuntu\ 64-bit.vmdk

Ubuntu 64-bit.vmdk: ASCII text

# cat Ubuntu\ 64-bit.vmdk

# Disk DescriptorFile

version=1

encoding="windows-1252"

CID=d8585e18

parentCID=ffffffff

createType="twoGbMaxExtentSparse"

# Extent description

RW 8323072 SPARSE "Ubuntu 64-bit-s001.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s002.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s003.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s004.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s005.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s006.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s007.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s008.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s009.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s010.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s011.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s012.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s013.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s014.vmdk"

RW 8323072 SPARSE "Ubuntu 64-bit-s015.vmdk"

RW 983040 SPARSE "Ubuntu 64-bit-s016.vmdk"

# The Disk Data Base

#DDB

ddb.adapterType = "lsilogic"

ddb.geometry.cylinders = "7832"

ddb.geometry.heads = "255"

ddb.geometry.sectors = "63"

ddb.longContentID = "d808a801bc288676fca9e7d1d8585e18"

ddb.toolsInstallType = "4"

ddb.toolsVersion = "10304"

ddb.uuid = "60 00 C2 92 4e c7 4b 7b-bd 7c 9b 65 e6 89 64 d1"

ddb.virtualHWVersion = "16"

Here are the files:

drwxr-xr-x 2 root root       4096 Mar 10 20:59  other-folder

-rwxrwxrwx 1 neo  neo  4168613888 Mar 10 18:55 'Ubuntu 64-bit-s001.vmdk'

-rwxrwxrwx 1 neo  neo  4224385024 Mar 10 19:02 'Ubuntu 64-bit-s002.vmdk'

-rwxrwxrwx 1 neo  neo  4203937792 Mar 10 19:02 'Ubuntu 64-bit-s003.vmdk'

-rwxrwxrwx 1 neo  neo  4205117440 Mar 10 19:09 'Ubuntu 64-bit-s004.vmdk'

-rwxrwxrwx 1 neo  neo  4207411200 Mar 10 19:09 'Ubuntu 64-bit-s005.vmdk'

-rwxrwxrwx 1 neo  neo  4212457472 Mar 10 19:15 'Ubuntu 64-bit-s006.vmdk'

-rwxrwxrwx 1 neo  neo  4210688000 Mar 10 19:15 'Ubuntu 64-bit-s007.vmdk'

-rwxrwxrwx 1 neo  neo  4209115136 Mar 10 19:22 'Ubuntu 64-bit-s008.vmdk'

-rwxrwxrwx 1 neo  neo  4256497664 Mar 10 19:21 'Ubuntu 64-bit-s009.vmdk'

-rwxrwxrwx 1 neo  neo  4218224640 Mar 10 19:28 'Ubuntu 64-bit-s010.vmdk'

-rwxrwxrwx 1 neo  neo  4212785152 Mar 10 19:28 'Ubuntu 64-bit-s011.vmdk'

-rwxrwxrwx 1 neo  neo  4223467520 Mar 10 19:35 'Ubuntu 64-bit-s012.vmdk'

-rwxrwxrwx 1 neo  neo  4220911616 Mar 10 19:35 'Ubuntu 64-bit-s013.vmdk'

-rwxrwxrwx 1 neo  neo  4208394240 Mar 10 19:41 'Ubuntu 64-bit-s014.vmdk'

-rwxrwxrwx 1 neo  neo  4237950976 Mar 10 19:41 'Ubuntu 64-bit-s015.vmdk'

-rwxrwxrwx 1 neo  neo   502333440 Mar 10 19:42 'Ubuntu 64-bit-s016.vmdk'

-rwxrwxrwx 1 neo  neo        1190 Mar 10 19:41 'Ubuntu 64-bit.vmdk'

-rw-rw-rw- 1 root root          0 Mar 10 21:00 'Ubuntu 64-bit.vmsd'

-rwxrwxrwx 1 neo  neo        3133 Mar 10 22:24 'Ubuntu 64-bit.vmx'

-rw-rw-rw- 1 root root        268 Mar 10 21:00 'Ubuntu 64-bit.vmxf'

drwxrwxrwx 2 root root       4096 Mar 10 22:37 'Ubuntu 64-bit.vmx.lck'

I tried moving some files to other folder, no change:

ls other-folder/

-rwxrwxrwx 1 neo neo 4294967296 Mar 10 18:56 'Ubuntu 64-bit-1886e651.vmem'

-rwxrwxrwx 1 neo neo       8684 Mar 10 19:41 'Ubuntu 64-bit.nvram'

-rw-rw-rw- 1 neo neo          0 Mar 10 19:41 'Ubuntu 64-bit.vmsd'

-rwxrwxrwx 1 neo neo        375 Mar 10 19:41 'Ubuntu 64-bit.vmxf'

-rwxrwxrwx 1 neo neo   10650974 Mar 10 19:41  vmmcores-1.gz

-rwxrwxrwx 1 neo neo     249543 Mar 10 19:41  vmware-0.log

-rwxrwxrwx 1 neo neo     273451 Mar 10 19:41  vmware-1.log

-rwxrwxrwx 1 neo neo          0 Mar 10 19:41  vmware-2.log

-rwxrwxrwx 1 neo neo     354837 Mar 10 19:43  vmware.log

-rwxrwxrwx 1 neo neo    5401166 Mar 10 19:44  vmware-vmx.dmp

Attempting to start the VM does not produce any logs. The "loading" window does not even appear. (all the vmware.log are old, from when the machine was on the windows host)

Versions:

VMware® Workstation 15 Player 15.5.1 build-15018445

Debian 10.3 (Linux 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux)

Any ideas?

Tags (1)
0 Kudos
1 Solution

Accepted Solutions
a_p_
Leadership
Leadership
Jump to solution

How do the first 1536 bytes of "64-bit-s014.vmdk" look like?

Please run the hexdump command with the mentioned size, and if it contains binary data other than all zeroes, extract the file's metadata to a file using the dd command, and attach that file to your next reply. The size of the metadata equals the size of your newly creates test .vmdk files (e.g. "test4-s014.vmdk").

If the hexdump result shows only zeroes, you may - after backing up all of the VM's current files - replace "64-bit-s014.vmdk" with "test4-s014.vmdk". This should at least allow you to mount the virtual disk, to extract/backup important data.

André

View solution in original post

0 Kudos
8 Replies
continuum
Immortal
Immortal
Jump to solution

Remove this lines:

# file Ubuntu\ 64-bit.vmdk

Ubuntu 64-bit.vmdk: ASCII text

# cat Ubuntu\ 64-bit.vmdk

in the descriptor vmdk and try again


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
johncold342
Contributor
Contributor
Jump to solution

sorry. Those lines are not in the file. but a copy/paste from the comand line.

I edited the post to make it more clear.

0 Kudos
continuum
Immortal
Immortal
Jump to solution

Are you sure the current host understands virtualHardware #16 ?


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
johncold342
Contributor
Contributor
Jump to solution

Hi. Thanks for the reply.

I really don't know what ddb.virtualHWVersion is, but if I create a new VM, the .vmdk generated contains that value in 16. So I guess its ok. Here is an example of the vmdk of a new VM:

# Disk DescriptorFile

version=1

encoding="UTF-8"

CID=fffffffe

parentCID=ffffffff

createType="twoGbMaxExtentSparse"

# Extent description

RW 8323072 SPARSE "test4-s001.vmdk"

RW 8323072 SPARSE "test4-s002.vmdk"

RW 8323072 SPARSE "test4-s003.vmdk"

RW 8323072 SPARSE "test4-s004.vmdk"

RW 8323072 SPARSE "test4-s005.vmdk"

RW 8323072 SPARSE "test4-s006.vmdk"

RW 8323072 SPARSE "test4-s007.vmdk"

RW 8323072 SPARSE "test4-s008.vmdk"

RW 8323072 SPARSE "test4-s009.vmdk"

RW 8323072 SPARSE "test4-s010.vmdk"

RW 8323072 SPARSE "test4-s011.vmdk"

RW 8323072 SPARSE "test4-s012.vmdk"

RW 8323072 SPARSE "test4-s013.vmdk"

RW 8323072 SPARSE "test4-s014.vmdk"

RW 8323072 SPARSE "test4-s015.vmdk"

RW 8323072 SPARSE "test4-s016.vmdk"

RW 8323072 SPARSE "test4-s017.vmdk"

RW 8323072 SPARSE "test4-s018.vmdk"

RW 8323072 SPARSE "test4-s019.vmdk"

RW 8323072 SPARSE "test4-s020.vmdk"

RW 1310720 SPARSE "test4-s021.vmdk"

# The Disk Data Base

#DDB

ddb.adapterType = "lsilogic"

ddb.geometry.cylinders = "10443"

ddb.geometry.heads = "255"

ddb.geometry.sectors = "63"

ddb.longContentID = "c869008e330c006fd8b11c00fffffffe"

ddb.uuid = "60 00 C2 98 ef 11 14 a0-c8 48 3d f3 d1 a9 05 2e"

ddb.virtualHWVersion = "16"

Using vmware-mount does not return the error it returned with the VM from the original post.

# vmware-mount -p test4.vmdk

Failed to get partition list: Cannot read or parse the partition table on the virtual disk.

(It fails to get the partition list because its empty, there are no partitions. But it recognizes as a virtual disk correctly)

0 Kudos
continuum
Immortal
Immortal
Jump to solution

Please check the magic number of each test4-s00*.vmdk

To do that you run

hexdump -C -n 4 test4-s001.vmdk

All slices should start with KDMV


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

johncold342
Contributor
Contributor
Jump to solution

Thanks. Somehow one file got corrupted.

# hexdump -C -n 4 Ubuntu\ 64-bit-s001.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s002.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s003.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s004.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s005.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s006.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s007.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s008.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s009.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s010.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s011.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s012.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s013.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s014.vmdk

00000000  00 00 00 00                                       |....|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s015.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

# hexdump -C -n 4 Ubuntu\ 64-bit-s016.vmdk

00000000  4b 44 4d 56                                       |KDMV|

00000004

0 Kudos
a_p_
Leadership
Leadership
Jump to solution

How do the first 1536 bytes of "64-bit-s014.vmdk" look like?

Please run the hexdump command with the mentioned size, and if it contains binary data other than all zeroes, extract the file's metadata to a file using the dd command, and attach that file to your next reply. The size of the metadata equals the size of your newly creates test .vmdk files (e.g. "test4-s014.vmdk").

If the hexdump result shows only zeroes, you may - after backing up all of the VM's current files - replace "64-bit-s014.vmdk" with "test4-s014.vmdk". This should at least allow you to mount the virtual disk, to extract/backup important data.

André

0 Kudos
johncold342
Contributor
Contributor
Jump to solution

Thanks. Indeed it seems the file in question if completely empty.

$ <Ubuntu\ 64-bit-s014.vmdk-corrupted tr -d '\0' | read -n 1 || echo "All zeroes."

All zeroes.

I replaced that file with the test-s014.vmdk and the machine started to boot. The boot failed and went into fsck.

The fsck failed and I was asked to execute fsck manually.

I did, and selected "yes" to all the "fix?" questions the fsck prompts.

After finishing I rebooted.

Again I wasn't able to reach ubuntu login, but the good news is that I now I'm able to mount the vmdk with vmware-mount utility and access the files.

So I'll mark this issue as solved.

Thank you and also thanks continuum for the help.

0 Kudos