I've volunteered for the task of fixing virt-clone[0]. There are a number of bugs which need to be addressed. Unfortunately the current virt-clone is broken-by-design since it cannot make changes inside the guest.
[0] http://linux.die.net/man/1/virt-clone The bugs boil down to what Microsoft calls "sysprepping" the clone, which is to say, removing its existing identity, hostname, ssh host keys, persistent network rules, host SID and workgroup name (for Windows). It's helpful for Linux guests to remove some of this stuff[1] -- it will make the cloning process smoother. For Windows it's absolutely required[2]. [1] https://rwmj.wordpress.com/2010/09/24/tip-my-procedure-for-cloning-a-fedora-vm/ [2] http://technet.microsoft.com/en-us/library/cc721940%28WS.10%29.aspx All that virt-clone can do now is to copy the guest and make some simple changes to the libvirt XML (eg. giving it a new MAC address). It doesn't even address the sysprepping problem. The problem with sysprepping is that it's hard to do, and it's different for every operating system. I've summarized some of the techniques below. Worse than that, for some OSes there are different levels of sysprepping that an administrator might want; also see below. So I'd like feedback from "virt-clone next generation" users: (a) Is cloning guests useful for you or not? Often or infrequently? (b) Do you currently use virt-clone to clone guests? (c) Do you have a homebrew method to clone guests? What does it do? (d) Do you use another tool to clone guests? (And how is it?) (e) When you clone a guest, do you "sysprep" it or would you like to? (Using the term "sysprep" generically here, I mean any sort of reinitialization for Linux or Windows guests). (f) How do you feel about a multi-step process? virt-clone -> virt-sysprep -> virt-resize (for example) (g) Have you had other problems with cloning guests? (h) What have I missed out in this analysis? What other features have you missed in virt-clone? Sysprepping Windows ------------------- This is a complex, manual process. We do some steps to automate it in RHEV. It's best to read Microsoft's online documentation at [2][3][4]. [3] http://support.microsoft.com/kb/302577 [4] http://blogs.technet.com/b/megand/archive/2005/01/20/357570.aspx Fedora ------ In theory you can just write a file /.unconfigured in the root, and Fedora will go through the firstboot process at next boot (it will reset timezone, root password, netconfig, keyboard, authentication). Some admins will *not* want all of these things to be reset, and will want either a lesser degree of unconfiguration, or will want to control each thing manually. I'm not totally convinced that this hasn't been broken by systemd introduction in Fedora 15. general Linux ------------- See [1]. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://et.redhat.com/~rjones/virt-df/