virt-p2v-make-disk -o /dev/sdX [os-version]
virt-p2v(1) converts a physical machine to run virtualized on KVM, managed by libvirt, OpenStack, oVirt, Red Hat Enterprise Virtualisation (RHEV), or one of the other targets supported by virt-v2v(1).
virt-p2v-make-disk is a script which creates a bootable disk image or USB key containing virt-p2v. It uses virt-builder(1) to do this, and is just a small shell script around virt-builder.
The required -o parameter specifies where the output should go, for example to a USB key (eg.
-o /dev/sdX) or to a file. If you pass a device name, then the existing contents of the device will be erased.
The root user on the disk image uses
p2v as its initial password.
os-version parameter is the base Linux distro to use for the operating system on the ISO. If you don't set this parameter, the script tries to choose a suitable default for you. Most users should not use the
The base OS selected for virt-p2v is not related in any way to the OS of the physical machine that you are trying to convert.
To list possible
os-version combinations, do:
Write a virt-p2v bootable USB key on /dev/sdX (any existing content on /dev/sdX is erased):
virt-p2v-make-disk -o /dev/sdX
Write a virt-p2v bootable virtual disk image, and boot it under qemu:
virt-p2v-make-disk -o /var/tmp/p2v.img qemu-kvm -m 1024 -boot c \ -drive file=/var/tmp/p2v.img,if=virtio,index=0 \ -drive file=/var/tmp/guest.img,if=virtio,index=1
where /var/tmp/guest.img would be the disk image of some guest that you want to convert (for testing only).
Adding Extra Packages
You can install extra packages using the --install option. This can be useful for making a more fully-featured virt-p2v disk with extra tools for debugging and troubleshooting. Give a list of packages, separated by commas. For example:
virt-p2v-make-disk -o /var/tmp/p2v.img --install tcpdump,traceroute
Adding an SSH Identity
You can inject an SSH identity (private key) file to the image using the --inject-ssh-identity option.
First create a key pair. It must have an empty passphrase:
ssh-keygen -t rsa -N '' -f id_rsa
This creates a private key (
id_rsa) and a public key (
id_rsa.pub) pair. The public key should be appended to the
authorized_keys file on the virt-v2v conversion server (usually to
The private key should be injected into the disk image and then discarded:
virt-p2v-make-disk [...] --inject-ssh-identity id_rsa rm id_rsa
When booting virt-p2v, specify the URL of the injected file like this:
│ User name: [root_____________________________] │ │ │ │ Password: [ <leave this field blank> ] │ │ │ │ SSH Identity URL: [file:///var/tmp/id_rsa___________] │
or if using the kernel command line, add:
For more information, see “SSH IDENTITIES” in virt-p2v(1).
32 Bit Virt-P2v
For improved compatibility with older hardware, virt-p2v-make-disk has an --arch option. The most useful setting (on x86-64 hosts) is --arch i686, which builds a 32 bit virt-p2v environment that will work on older hardware. 32 bit virt-p2v can convert 64 bit physical machines and can interoperate with 64 bit virt-v2v and 64 bit hypervisors.
This option requires that you have built virt-p2v.$arch (ie. usually virt-p2v.i686) by some means, and that you install it next to the ordinary virt-p2v binary (eg. in
$VIRT_V2V_DATA_DIR). This is outside the scope of this manual page, but you can find some tips in “BUILDING i686 32 BIT VIRT-P2V” in p2v-building(1).
- --arch ARCH
Set the architecture of the virt-p2v ISO. See “32 Bit Virt-P2v” above.
If this option is not supplied, then the default is to use the same architecture as the host that is running virt-p2v-make-disk.
- --inject-ssh-identity id_rsa
Add an SSH identity (private key) file into the image. See “Adding an SSH Identity” above.
- --install pkg,pkg,...
Add extra packages to the image. See “Adding Extra Packages” above.
Normally you should not write to a partition on a USB drive (ie. don’t use
-o /dev/sdX1, use
-o /dev/sdXto make a bootable USB drive). If you do this, virt-builder prints a warning. This option suppresses that warning.
- -o OUTPUT
- --output OUTPUT
Write output to
OUTPUT, which can be a local file or block device. The existing contents of the device will be erased.
Enable verbose output. Use this if you need to debug problems with the script or if you are filing a bug.
Display version number and exit.
The virt-p2v(1) binary which is copied into the bootable disk image.
The location of the binary can be changed by setting the
Various data files that are copied into the bootable disk image.
The location of these files can be changed by setting the
The directory where virt-p2v-make-disk looks for data files (see “Files” above). If not set, a compiled-in location is used.
virt-p2v(1), virt-p2v-make-kickstart(1), virt-p2v-make-kiwi(1), virt-v2v(1), http://libguestfs.org/.
Richard W.M. Jones http://people.redhat.com/~rjones/
Copyright (C) 2009-2019 Red Hat Inc.
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, see <https://www.gnu.org/licenses/>.
To get a list of bugs against libguestfs (which include virt-p2v), 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 virt-p2v.
- Where you got virt-p2v (eg. which Linux distro, compiled from source, etc)
- Describe the bug accurately and give a way to reproduce it.
virt-p2v(1), virt-p2v-make-kickstart(1), virt-p2v-make-kiwi(1).