Fix new path to RPM.
[virt-p2v.git] / README.developers
index d46d5d9..9a00b33 100644 (file)
@@ -1,9 +1,91 @@
-The files in this directory are:
+Support
+----------------------------------------------------------------------
 
-livecd-test.ks.in
+Please send all queries, patches, bug reports etc. to the
+et-mgmt-tools mailing list:
 
-livecd-post.sh.in
+  http://www.redhat.com/mailman/listinfo/et-mgmt-tools
 
-p2v.init
+Source repository
+----------------------------------------------------------------------
 
-virt-p2v.sh
+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.