Open minger0 opened 1 year ago
About eBlockerVM in general: The OVA uses an unusual, newer OVF variant than we currently support, and as a result virt-v2v cannot right now be used to import it.
There is a bug about this: https://bugzilla.redhat.com/show_bug.cgi?id=2183999
Do you expect a solution coming in a few weeks?
If not, is there a temporary one-off bootstrapping for the issues you mentioned?
(1) The xmlns changed to: xmlns="http://schemas.dmtf.org/ovf/envelope/2"
(2) ovf:version="2.0" in the <Envelope>
(3) Uses <StorageItem>
instead of <Item>
It's a volunteer project and everyone is welcome to contribute. That said, this particular new format is hard to implement and apparently not used by VMware.
It may well be possible to modify the OVF to turn it into a v1 format. You might want to start by looking at some other example OVFs to get the idea, such as the ones we use for testing here: https://github.com/libguestfs/virt-v2v/tree/master/tests
rwmjones 17c6d52 reported the eBlockerVM-2.9.1-amd64.ova working on the latest after his commit, so I followed the install steps and installed virtv2v latest to /usr/local/bin/virt-v2v, hoping that it would work for me just like for rwmjones. It did not, because I get a virt-v2v: error: libguestfs error: you must call guestfs_add_drive before error instead. See details below. Question: how to get the eBlockerVM-2.9.1-amd64.ova conversion working?
/usr/local/bin/virt-v2v
virt-v2v 1.44.2
virt-v2v 2.3.3
libguestfs: trace: set_verbose true libguestfs: trace: set_verbose = 0 libguestfs: trace: get_cachedir libguestfs: trace: get_cachedir = "/var/tmp" virt-v2v: virt-v2v 2.3.3 (x86_64) libvirt version: 8.0.0 check_host_free_space: large_tmpdir=/var/tmp free_space=813592858624 [ 0.0] Setting up the source: -i ova eBlockerVM-2.9.1-amd64.ova qemu-img info json:'{ "file": { "driver": "raw", "offset": 512, "size": 512, "file": { "filename": "/tmp/v2vqemuimgtstb82e23.img" } } }' >/dev/null qemu-img supports "offset" and "size" in json URLs: true libguestfs: trace: set_verbose true libguestfs: trace: set_verbose = 0 libguestfs: trace: set_trace true libguestfs: trace: set_trace = 0 libguestfs: trace: set_verbose true libguestfs: trace: set_verbose = 0 libguestfs: trace: get_backend libguestfs: trace: get_backend = "direct" tar -tf 'eBlockerVM-2.9.1-amd64.ova' tar -xf 'eBlockerVM-2.9.1-amd64.ova' -C '/var/tmp/ova.CdLB6P' 'eBlockerVM-2.9.1-amd64.ovf' 'eBlockerVM-2.9.1-amd64.mf' ova: orig_ova = eBlockerVM-2.9.1-amd64.ova, top_dir = /var/tmp/ova.CdLB6P, ova_type = TarOptimized eBlockerVM-2.9.1-amd64.ova ova: processing manifest file /var/tmp/ova.CdLB6P/eBlockerVM-2.9.1-amd64.mf libguestfs: trace: close libguestfs: closing guestfs handle 0x5567bd9367a0 (state 0) libguestfs: trace: close libguestfs: closing guestfs handle 0x5567bd948a40 (state 0) tar xOf 'eBlockerVM-2.9.1-amd64.ova' 'eBlocker VM-disk001.vmdk' | sha256sum tar xOf 'eBlockerVM-2.9.1-amd64.ova' 'eBlockerVM-2.9.1-amd64.ovf' | sha256sum virt-v2v: warning: could not parse ovf:Name from OVF document [ 7.0] Opening the source libguestfs: trace: set_verbose true libguestfs: trace: set_verbose = 0 libguestfs: trace: set_trace true libguestfs: trace: set_trace = 0 libguestfs: trace: set_verbose true libguestfs: trace: set_verbose = 0 libguestfs: trace: set_identifier "v2v" libguestfs: trace: v2v: set_identifier = 0 libguestfs: trace: v2v: get_memsize libguestfs: trace: v2v: get_memsize = 1280 libguestfs: trace: v2v: set_memsize 2560 libguestfs: trace: v2v: set_memsize = 0 libguestfs: trace: v2v: set_smp 8 libguestfs: trace: v2v: set_smp = 0 libguestfs: trace: v2v: set_network true libguestfs: trace: v2v: set_network = 0 libguestfs: trace: v2v: launch libguestfs: trace: v2v: max_disks libguestfs: trace: v2v: max_disks = 255 libguestfs: trace: v2v: get_tmpdir libguestfs: trace: v2v: get_tmpdir = "/tmp" libguestfs: trace: v2v: version libguestfs: trace: v2v: version = <struct guestfs_version = major: 1, minor: 46, release: 2, extra: , > libguestfs: trace: v2v: get_backend libguestfs: trace: v2v: get_backend = "direct" libguestfs: launch: program=virt-v2v libguestfs: launch: identifier=v2v libguestfs: launch: version=1.46.2 libguestfs: launch: backend registered: unix libguestfs: launch: backend registered: uml libguestfs: launch: backend registered: libvirt libguestfs: launch: backend registered: direct libguestfs: launch: backend=direct libguestfs: launch: tmpdir=/tmp/libguestfs7y9SCY libguestfs: launch: umask=0002 libguestfs: launch: euid=1000 libguestfs: trace: v2v: launch = -1 (error) virt-v2v: error: libguestfs error: you must call guestfs_add_drive before guestfs_launch rm -rf -- '/var/tmp/ova.CdLB6P' rm -rf -- '/tmp/v2v.OLYbVO' libguestfs: trace: v2v: close libguestfs: closing guestfs handle 0x5567bd95acc0 (state 0) libguestfs: command: run: rm libguestfs: command: run: \ -rf /tmp/libguestfs7y9SCY