Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am interested in trying to package a software product consisting of a large linux software stack as a so-called "virtual appliance" to avoid a painful, painful installation procedure. My needs are probably similar to the author of this question and the answers here were helpful, but I have some specific questions.

The app I am trying to distribute consists of several rails apps and some other servers, daemons, and jobs that need to run via cron, etc. Currently it is running in a Ubuntu server.

  1. What is the best way currently available to create and package a virtual machine like the above? I have been looking at JeOS which appears to be outdated, but has some tutorials written about the process. Also apparently the Open Virtualization Format is a good one for distributing virtual appliances, but I can't find any tutorials on creating such an image.

  2. How would we go about distributing the image and updates in such a way that user data is preserved?

share|improve this question
up vote 2 down vote accepted

I'll answer 2) first: If you set up the VM to contain 2 virtual disks you can put the OS and any upgradeable components on one disk and all user data on the other disk. To upgrade while preserving user data just ship an update of the OS disk.

As for 1): If you follow my suggestion for 2 you want to look for a format where the virtual disks are easily replaceable individually. You could achieve this using qemu/kvm with e.g. qcow2 images, but there are probably other formats, some of which may be easier to launch for users than qemu/kvm. If you use a cloud stack like OpenNebula to run the VMs instead of asking users to start the VMs themselves qemu-kvm with 1) should be very feasible.

share|improve this answer
Thank you. Great answer to a pretty vague question. – jberryman Mar 23 '11 at 15:19

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.