Closed uckelman closed 2 years ago
Does this fit your understanding of things?
Yes, from https://github.com/libyal/libvmdk/blob/master/ChangeLog#L15
* if there is a single filename in the disk database and the current file is
not a descriptor-only file assume the current file is the right one even if
the names don't match
In this regard we can adopt the most flexible behavior. I'd noted this but have not implemented it yet.
If so, I'll work up a patch to make libvmdk behave this way.
That would be helpful, thanks.
Fixed in PR #8.
PR does not fix the issue correctly:
Hence I've started making some changes: https://github.com/libyal/libvmdk/commit/d49417204576ca8988a4827ca5e92d5e212e091b
Not finished yet, but I'll close the PR
The same happens not only for "monolithic sparse" format but also for e.g. "stream optimized". Is the issue fixed by now?
@welkomier yes, very simple, just rename the file back to its original name.
monolithicSparse
type VMDK namedfoo.vmdk
.bar.vmdk
.bar.vmdk
with libvmdk.The cause is easy to see in the embedded descriptor file:
libvmdk is looking for the extents in
foo.vmdk
, but not finding it because the file has been renamed.Renamed monolithic images are a fairly common thing to encounter. Some other tools, such as VirtualBox, are able to open renamed
monolithicSparse
images. I've tried to determine what behavior is mandated by the spec---specifically:monolithicSparse
image to have an extent which is not in the same file as the descriptor?The Virtual Disk Format 1.1 spec says (p. 18):
The Virtual Disk Format 5.0 spec (p. 3) says:
Based on this, it appears that the correct behavior for
monolithicSparse
images is to ignore the filename given in the descriptor for the single extent and instead use for the extent filename the filename of the file containing the descriptor.Does this fit your understanding of things? If so, I'll work up a patch to make libvmdk behave this way.