[Libguestfs] Virtualbox vdi Input Format and man pages

Richard W.M. Jones rjones at redhat.com
Sat Aug 19 16:36:45 UTC 2017


On Sat, Aug 19, 2017 at 08:38:31AM -0600, stef204 wrote:
> Hi,
> 
> I am new to v2v/libguestfs.

> I need to convert a 30 GB virtual machine running Windows7 64 bit (a
> guest on a Linux system) from Virtualbox vdi format to qcow2 (or
> raw/img--another debate in itself) so I can use libvirt/qemu/kvm to
> run it and completely migrate away from Virtualbox.
>
> The vdi machine is a mission critical production environment and I
> cannot afford to mess it up, etc.  Will keep original vdi intact
> until have successfully converted and tested.

This is very good advice.

> I have done some research and come upon v2v which seems to be just
> what the doctor ordered except that, in "local" man pages of version
> 1.36.4 which I have installed, there is NO mention of vdi
> compatibility as input format.
>
> However, on these online man pages
> <https://linux.die.net/man/1/virt-v2v> I see a section called "Local
> VirtualBox guests" which seems to indicate that vdi is indeed
> accepted as input format.

Unfortunately the link documents the old version of virt-v2v (which we
normally call "0.9").  The current version is a derivative of that, of
sorts, but massively rewritten internally.

> Can anyone provide feedback as to the above?
>
> v2v seems to be a tool I could use to more easily deal with this
> conversion/migration than just using qemu-img convert and having to
> then deal with the other bits and pieces such as virtio drivers,
> etc.

It's good that you mention ‘qemu-img convert’, because the significant
difference between virt-v2v & plain qemu-img conversion is that
virt-v2v will try to install virtio drivers.  Installing virtio
drivers in a Windows guest post-conversion is a PITA which is why
virt-v2v may be better if you require virtio.

So ... to the topic: We don't specifically test conversion from
VirtualBox or .vdi.  But it ought to work.

You will need the virtio drivers from:
  https://fedoraproject.org/wiki/Windows_Virtio_Drivers
You can either install that package so it appears under
/usr/share/virtio-win, or you can use the .iso file from that package
and set the VIRTIO_WIN environment variable to point to it:

  http://libguestfs.org/virt-v2v.1.html#environment-variables

Do you have metadata from VirtualBox (number of CPUs, RAM, etc) in
some format?  If not, then you should probably use the ‘-i libvirtxml’
input method.  You will have to write or modify the metadata, as
documented here:

  http://libguestfs.org/virt-v2v.1.html#minimal-xml-for--i-libvirtxml-option

I believe that virt-v2v should be able to transparently convert
the .vdi source file.  You might or might not need to use the
‘-if vdi‘ option.

It's safe to run virt-v2v on the guest disk image (or a copy, if you
want to be extra cautious), just to see if it can be converted.  If it
fails or gives warnings or errors, then please post the full output of
‘virt-v2v -v -x ....’

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW




More information about the Libguestfs mailing list