virt-v2v-output-local - Man Page
Using virt-v2v to convert guests to local files or libvirt
Synopsis
virt-v2v [-i* options] [-o libvirt] -os POOL virt-v2v [-i* options] -o local -os DIRECTORY virt-v2v [-i* options] -o qemu -os DIRECTORY [-oo qemu-boot] virt-v2v [-i* options] -o null
Description
This page documents how to use virt-v2v(1) to convert guests to local files or to a locally running libvirt instance. There are four output modes you can select on the virt-v2v command line:
- -o libvirt -os POOL
- -os POOL
- This converts the guest to a libvirt directory pool call - POOL, and instantiates the guest in libvirt (but does not start it running). See "Output to Libvirt" below.- -o libvirt is the default if no -o option is given, so you can omit it. 
- -o local -os DIRECTORY
- This converts the guest to files in - DIRECTORY. A libvirt XML file is also created, but unlike -o libvirt the guest is not instantiated in libvirt, only files are created.- The files will be called: - NAME-sda, NAME-sdb, etc. Guest disk(s). NAME.xml Libvirt XML. - where - NAMEis the guest name.
- -o qemu -os DIRECTORY
- -o qemu -os DIRECTORY -oo qemu-boot
- This converts the guest to files in - DIRECTORY. Unlike -o local above, a shell script is created which contains the raw qemu command you would need to boot the guest. However the shell script is not run, unless you also add the -oo qemu-boot option.
- -o null
- The guest is converted, but the final result is thrown away and no metadata is created. This is mainly useful for testing. 
Output to Libvirt
The -o libvirt option lets you upload the converted guest to a libvirt-managed host. There are several limitations:
- You can only use a local libvirt connection [see below for how to workaround this].
- The -os pool option must specify a directory pool, not anything more exotic such as iSCSI [but see below].
- You can only upload to a KVM hypervisor.
Workaround for output to a remote libvirt instance and/or a non-directory storage pool
- Use virt-v2v in -o local mode to convert the guest disks and metadata into a local temporary directory: - virt-v2v [...] -o local -os /var/tmp - This creates two (or more) files in /var/tmp called: - /var/tmp/NAME.xml # the libvirt XML (metadata) /var/tmp/NAME-sda # the guest’s first disk - (for - NAMEsubstitute the guest’s name).
- Upload the converted disk(s) into the storage pool called - POOL:- size=$(stat -c%s /var/tmp/NAME-sda) virsh vol-create-as POOL NAME-sda $size --format raw virsh vol-upload --pool POOL NAME-sda /var/tmp/NAME-sda 
- Edit /var/tmp/NAME.xml to change /var/tmp/NAME-sda to the pool name. In other words, locate the following bit of XML: - <disk type='file' device='disk'> <driver name='qemu' type='raw' /> <source file='/var/tmp/NAME-sda' /> <target dev='hda' bus='ide' /> </disk> - and change two things: The - type='file'attribute must be changed to- type='volume', and the- <source>element must be changed to include- pooland- volumeattributes:- <disk type='volume' device='disk'> ... <source pool='POOL' volume='NAME-sda' /> ... </disk> 
- Define the final guest in libvirt: - virsh define /var/tmp/NAME.xml 
See Also
Author
Richard W.M. Jones
Copyright
Copyright (C) 2009-2025 Red Hat Inc.
License
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Bugs
To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
When reporting a bug, please supply:
- The version of libguestfs.
- Where you got libguestfs (eg. which Linux distro, compiled from source, etc)
- Describe the bug accurately and give a way to reproduce it.
- Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug report.