X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=README.developers;h=09845698c3390d11be88afad42c9412810fff128;hb=91e0946235d4c7e2d1fe7eee01d3705dd81c945b;hp=d46d5d9cb924850180da1729ed72b09f5e70b6f3;hpb=86bfeb367eb0367046acde183eb6b677ee1d0d1f;p=virt-p2v.git diff --git a/README.developers b/README.developers index d46d5d9..0984569 100644 --- a/README.developers +++ b/README.developers @@ -1,9 +1,61 @@ -The files in this directory are: +Background reading +---------------------------------------------------------------------- -livecd-test.ks.in +About Live CDs / livecd-creator tool: -livecd-post.sh.in + http://fedoraproject.org/wiki/FedoraLiveCD/LiveCDHowTo -p2v.init +The files in this directory +---------------------------------------------------------------------- -virt-p2v.sh +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'). + +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.