When virtualizing a physical machine ("P2V"), the conversion step is done by virt-v2v, but there is a small GUI / front end component called virt-p2v which has to run on the source physical machine in a special environment. http://libguestfs.org/virt-p2v.1.html#network-setup Because the nature of the problem is that we want to virtualize old machines, this means virt-p2v sometimes has to be run with old drivers or on machines which would be considered obsolete today as servers (eg. 32 bit machines). We have a customer who wishes to virtualize a machine with an ancient LSI controller that is only supported by a proprietary kernel module for RHEL 5, and so I spent some time getting virt-p2v to compile and run on RHEL 5. These are my notes in case anyone needs to reproduce this (or *I* need to reproduce it at some later date). I needed both virt-p2v with the Gtk GUI, and qemu-nbd (also not available on RHEL 5). I started with libguestfs from git. I have added a few upstreamable RHEL 5 patches. I also needed the attached patches which are not upstreamable. You will need to run bootstrap and/or autogen.sh on more recent machine, since autotools on RHEL 5 is far too old. (This was easy for me because I was building on an NFS homedir shared between Fedora 25 and RHEL 5). Configure libguestfs like this: export vmchannel_test=no export LIBTINFO_CFLAGS=-D_GNU_SOURCE export LIBTINFO_LIBS=-lncurses export YAJL_CFLAGS=-D_GNU_SOURCE export YAJL_LIBS=-lyajl ./configure \ --prefix /usr \ --libdir /usr/lib64 \ --disable-static \ --disable-appliance --disable-daemon \ --disable-ocaml --disable-perl --disable-python --disable-ruby \ --disable-php --disable-lua \ --with-qemu=no We only want virt-p2v to be compiled, so at this point you can do one of: make -k make -C p2v This should get you a virt-p2v binary. For qemu-nbd, the latest qemu is not even close to compiling on RHEL 5. However going back to qemu tag v1.5.0 worked, and it compiled easily from git. This will give you a qemu-nbd binary. Provided that both qemu-nbd and virt-p2v are available on the $PATH, you can now run virt-p2v as normal. Note that you should run it against virt-v2v on a modern machine (conversion server). There is a case for making virt-p2v work with other NBD servers (eg. nbd or nbdkit), or with a minimal built-in NBD server. To build the RHEL 5 virt-p2v ISO, I had to quite heavily modify the p2v.ks (kickstart) file. The file is rather large so I could not attach it, but I placed it here instead: http://oirase.annexia.org/tmp/p2v-rhel-5.ks 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