+If you have Mercurial installed, then:
+
+ hg clone http://hg.et.redhat.com/virt/applications/virt-p2v--devel
+
+Background reading
+----------------------------------------------------------------------
+
+About Live CDs / livecd-creator tool:
+
+ http://fedoraproject.org/wiki/FedoraLiveCD/LiveCDHowTo
+
+The files in this directory
+----------------------------------------------------------------------
+
+p2v.ks.in
+
+ Kickstart file which describes how to build the live CD. This is
+ essentially the configuration file for livecd-creator. Most
+ importantly it lists the RPMs which are needed on the live CD.
+
+virt-p2v
+
+ This is the virt-p2v P2V configuration tool itself. It is
+ installed on the live CD as /usr/bin/virt-p2v and runs after the
+ live CD has booted. All the P2V stuff happens from this script. It
+ uses the 'dialog' program to ask questions.
+
+inittab
+
+ Replacement /etc/inittab.
+
+iso-attach
+
+ Attach newer virt-p2v scripts to pre-built ISOs (used by 'make update').
+
+extras/
+
+ Anything under here is copied onto the ISO squashfs. In particular
+ this contains paravirt drivers for Red Hat Enterprise Linux,
+ CentOS and friends.
+
+Tips for OCaml
+----------------------------------------------------------------------
+
+All the packages you need are in Fedora and Debian.
+
+If using emacs, make sure you install tuareg-mode (the editing mode
+for OCaml). Unfortunately there is no Fedora package for it at the
+moment, but it is very easy to install.
+
+General implementation plan
+----------------------------------------------------------------------
+
+User boots the live CD. The job of the live CD is to:
+
+(a) Find local disks.
+
+(b) Copy the disk image(s) over to the Xen host.
+
+(c) Change certain files (eg. /etc/fstab may contain references to
+disk devices, which need to be changed when running under Xen).
+
+(d) BUT, the live CD must be totally non-destructive. It cannot
+modify the local disks in any way.
+
+(e) The above steps are not automatic. We need to ask the user some
+questions along the way.
+
+For (a) there are various methods to detect local devices. We sniff
+for devices in /sys/block.
+
+For (b) we can simply use 'dd' and 'ssh'. The general plan is to do
+this:
+
+ dd if=/dev/disk | ssh -C xenhost 'cat > /var/lib/xen/images/disk.img'
+
+For (c) we can use device-mapper snapshots to mount a ramdisk above
+the disks themselves. This allows us to make non-destructive changes
+to files, and still see the "modified" block device (d). A hairy
+script looks for candidate files to modify.