Re: [Libguestfs] difficulty using virt-v2v with OVA

Pino Toscano
Fri, 07 Apr 2017 08:12:24 -0000

Hi,

On Friday, 7 April 2017 03:57:30 CEST solarflow99 wrote:
> I have a Fedora 24 system I can already get this working for most OVA
> files, just the BSD and atomic ones weren't recognized.

BSD systems are not currently supported by virt-v2v, they need an
ad-hoc conversion module.

Inspection of Atomic systems currently does not work, see also
https://bugzilla.redhat.com/show_bug.cgi?id=1102241

> Assuming my
> version of virt-v2v is just old, I installed rawhide on a different system
> and tried with virt-v2v-1.37.8-1.fc27.x86_64 and now its having another
> problem.  Is there a known version of virt-v2v I should be using?  Here is
> the output from the rawhide attempt happens for any OVA file I try:
>
> # virt-v2v -v -x -i ova graylog.ova -o qemu -of qcow2 -os /var/tmp
> --qemu-boot
> [...]
> libguestfs: trace: v2v: launch = -1 (error)
> virt-v2v: error: libguestfs error: could not create appliance through
> libvirt.
>
> Try running qemu directly without libvirt using this environment variable:
> export LIBGUESTFS_BACKEND=direct
>
> Original error from libvirt: Cannot access backing file
'/root/graylog.ova'
> of storage file '/var/tmp/v2vovle91365.qcow2' (as uid:107,
gid:107):
> Permission denied [code=38 int1=13]

The problem is that the OVA can be read as root only, and you are
running as root.  On Fedora, libguestfs uses libvirt by default to spawn
an appliance, and libvirt uses by default a non-priviledged user when
running as root.

We have a (ugly IMHO) workaround for some of the cases, as you can see
from a snippet of the output:

| virt-v2v: warning: making OVA directory public readable to work around
| libvirt bug https://bugzilla.redhat.com/1045069

but it doesn't always work.  The ways to overcome this problem are
1) run virt-v2v as non-root
2) temporarly export LIBGUESTFS_BACKEND=direct for that virt-v2v
   execution

--
Pino Toscano