GenVM

“Genvm” is a free and open source Virtual Machine (VM) generator. “Genvm” run on all linux distributions. The generated disks images can be used with Qemu/KVM (so by libvirt, ProxMox, etc), VirtualBox or VMWare under Windows, Linux or Mac OS. This script accepts options to customize all parameters of VM.

It could be used in build farm in order to distribute a project or by everybody who need to generate automatically lot of Virtual Machines.

Actualy to install Debian Stretch add package “systemd-sysv” with option ‘-A’ (-A systemd-sysv) or by adding it to your package list (used with -l).

Download

You can download the last version of GenVM from:

or a stable version (recommended) from GitHub:

Other possibility: using the version control system “git” to clone “GenVM” repository (https://github.com/genvm/genvm.git).

fhh@aaricia ~ $ git clone https://github.com/genvm/genvm.git
Cloning into 'genvm'...
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 75 (delta 24), reused 71 (delta 22), pack-reused 0
Unpacking objects: 100% (75/75), done.
Checking connectivity... done.
fhh@aaricia ~ $ cd genvm
fhh@aaricia ~/genvm $ ./genvm -h
/users/fhh/genvm/genvm [options] <hard drive image>

  ** Note that root privileges are needed to run /users/fhh/genvm/genvm **

Options
...

Installation

“Genvm” is a simple Bash script so no special installation is required, download script from repositories extract it and verify permissions.

Requirements

Some requirements are surly already available on your Linux :

sync, losetup, mktemp, mount, source, cat, chroot, umount, modprobe, mkswap, basename, readlink, dirname, blkid, tee

Some other probably need installations :

parted, kpartx, debootstrap, qemu-utils (for qemu-nbd, qemu-img)

On ArchLinux, kpartx or deboostrap are available from AUR. On Red-Hat like, EPEL offer all needed dependences.

Documentation

Documentation is in progress here and concern actually:

Quick start

The most easier way to generate virtual machine is to take all defaults values (have a look on GenVM - Defaults values) and the default partitioning schema (GenVM - Partitioning to personalize it). Only an interventions to set the root password (see GenVM - Set root password to avoid this step) is needed:

fhh@aaricia ~/genvm $ su -c "./genvm vm.vmdk"
Password:
Set password to root > 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
fhh@aaricia ~/genvm $ ls -lh vm.vmdk
-rw-r--r-- 1 root users 875M Jul 27 17:33 vm.vmdk

So the complete system is installed on image “vm.vmdk” and you could start it as you want (with Qemu in this example):

fhh@aaricia ~/genvm $ su -c "qemu-system-x86_64 -enable-kvm vm.vmdk"

In this case, VM start as root because image is owned by him. A simple chown allows users to start it :

fhh@aaricia ~/genvm $ su -c "chown fhh.users vm.vmdk"
Password: 
fhh@aaricia ~/genvm $ qemu-system-x86_64 -enable-kvm vm.vmdk

Naturally, all this basic tuning (change owner, starting virtual machine) could be integrated on “Genvm” process.

Note:
The generated virtual machine is, by default, not connected to the Internet and has no DHCP client.
The keyboard is QWERTY.
This is a minimalist machine, you have all the choices concerning the existent components (no default text editor installed, no logs manager, no mail transfer agent, etc).

Use GenVM - Full documentation to tune your future VMs and GenVM - Example of personalized virtual machine to complete example.

Informations

Some examples with script (20160523)

We are pleased to anounce some examples to generate some basic virtuals machines.

New major stable version (20150118)

New stable version of GenVM available (2.0)

GenVM generates now Ubuntu images (20160114)

New version of GenVM can now generates Ubuntu images.

A logo for “Genvm” (20150824)

As you can see on header of this site, “Genvm” as now a beautiful logo. Thank you to Fabrice KORDON for this dedicated creation !!!

Documentation for partitioning with GenVM (20150808)

Howto use partitions with GenVM is now documented on GenVM - Partitioning page.

PDF export is fixed.

From SourceForge to GitHub (20150726)

After some years on the great SourceForge, “Genvm” migrate to GitHub.

Contact us

You can contact us by mail on “team at genvm dot eu”.