On Mon, 09/26 13:52, Peter Lieven wrote:
Am 26.09.2016 um 13:34 schrieb Fam Zheng:
On Mon, 09/26 12:56, Peter Lieven wrote:
Hi,
i have a VMDK file for a Cisco Prime software appliance that I cannot open in
Qemu, Virtualbox or any other tool except
for ESXi. Qemu exits with an invalid footer message. At the expected position
and also at the end of the file seems to be
no footer. The VMDK has a -flex in the filename? Is this anything new that we
can't handle in Qemu?
Looking at the code path it's possible that the image is not compliant to the
spec, or using a newer version number that QEMU doesn't support. Could you
hexdump the first and the last sectors for me to check?
Sure, here we go
address@hidden:~/git/qemu$ ls -la /work/PI-VA-3.1.0.0.132-flex-disk1.vmdk
-rw------- 1 lieven lieven 3792931840 Apr 11 05:44
/work/PI-VA-3.1.0.0.132-flex-disk1.vmdk
address@hidden:~/git/qemu$ head -c4096 /work/PI-VA-3.1.0.0.132-flex-disk1.vmdk
| hexdump -C
00000000 4b 44 4d 56 03 00 00 00 01 00 03 00 00 00 9f 24 |KDMV...........$|
00000010 00 00 00 00 80 00 00 00 00 00 00 00 01 00 00 00 |................|
00000020 00 00 00 00 02 00 00 00 00 00 00 00 00 02 00 00 |................|
00000030 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff |................|
^^^^^^^^^^^^^^^^^^^^^^^
This offset means a footer is used.
In vmdk_50_technote.pdf:
The footer should be the last block of the disk and immediately followed by
the end‐of‐stream marker so that they together occupy the last two sectors of
the disk.
which is the format of streamOptimized format, matching what the embedded
descriptor says:
00000040 80 00 00 00 00 00 00 00 00 0a 20 0d 0a 01 00 00 |.......... .....|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200 23 20 44 69 73 6b 20 44 65 73 63 72 69 70 74 6f |# Disk Descripto|
00000210 72 46 69 6c 65 0a 76 65 72 73 69 6f 6e 3d 31 0a |rFile.version=1.|
00000220 43 49 44 3d 36 65 32 37 64 38 31 65 0a 70 61 72 |CID=6e27d81e.par|
00000230 65 6e 74 43 49 44 3d 66 66 66 66 66 66 66 66 0a |entCID=ffffffff.|
00000240 63 72 65 61 74 65 54 79 70 65 3d 22 73 74 72 65 |createType="stre|
^^^^
00000250 61 6d 4f 70 74 69 6d 69 7a 65 64 22 0a 0a 23 20 |amOptimized"..# |
^^^^^^^^^^^
<snip>
00000d00 00 00 00 00 ed 08 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d10 00 00 00 00 f3 08 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d20 00 00 00 00 f9 08 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d30 00 00 00 00 ff 08 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d40 00 00 00 00 05 09 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d50 00 00 00 00 0b 09 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d60 00 00 00 00 11 09 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d70 00 00 00 00 17 09 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d80 00 00 00 00 1d 09 71 00 00 00 00 00 00 00 00 00 |......q.........|
00000d90 00 00 00 00 23 09 71 00 00 00 00 00 00 00 00 00 |....#.q.........|
00000da0 00 00 00 00 29 09 71 00 00 00 00 00 00 00 00 00 |....).q.........|
00000db0 00 00 00 00 2f 09 71 00 00 00 00 00 00 00 00 00 |..../.q.........|
00000dc0 00 00 00 00 35 09 71 00 00 00 00 00 00 00 00 00 |....5.q.........|
00000dd0 00 00 00 00 3b 09 71 00 00 00 00 00 00 00 00 00 |....;.q.........|
00000de0 00 00 00 00 41 09 71 00 00 00 00 00 00 00 00 00 |....A.q.........|
00000df0 00 00 00 00 47 09 71 00 00 00 00 00 00 00 00 00 |....G.q.........|
00000e00 00 00 00 00 4d 09 71 00 00 00 00 00 00 00 00 00 |....M.q.........|
But the last sector is not the expected EOS marker.
00000e10 00 00 00 00 53 09 71 00 00 00 00 00 00 00 00 00 |....S.q.........|
00000e20 00 00 00 00 59 09 71 00 00 00 00 00 00 00 00 00 |....Y.q.........|
00000e30 00 00 00 00 5f 09 71 00 00 00 00 00 00 00 00 00 |...._.q.........|
00000e40 00 00 00 00 65 09 71 00 00 00 00 00 00 00 00 00 |....e.q.........|
00000e50 00 00 00 00 6b 09 71 00 00 00 00 00 00 00 00 00 |....k.q.........|
00000e60 00 00 00 00 71 09 71 00 00 00 00 00 00 00 00 00 |....q.q.........|
00000e70 00 00 00 00 77 09 71 00 00 00 00 00 00 00 00 00 |....w.q.........|
00000e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00001000
Peter
So it looks like this file is not compliant to the specfication. Is it
recognized and imported by VMware?