GenVM - Howto install

GenVM is a script wrote in “modern” Bash (Bash greater than 4), so it use some advanced functions unavailable on older Bash versions (like default Bash version on Mac OSX). It’s wrote on GNU Linux, so some BSD versions of tools may break the execution.

As you can read on first page, the major part of utilities are available on standard installations of Linux whatever the distribution.

The only real original dependency is debootstrap (used to download and install the base Debian system), but this tools is ported on almost all Linux distributions.

To create a complete and coherent system, the script must run as root, so you can configure your sudoers file or can assume the root privileges.

Last thing to run GenVM is an active Internet connection (or if you use your own private Debian mirror, at less a network connection). The complete system is downloaded from Debian Internet mirrors that’s why it’s an important think.

On the kernel, you need the support of filesystems used on your virtual machine, the support of nbd (Network Block Device), and loop devices, but all this is available by default on distributions kernels.

Dependences

As you can read on first page (GenVM), the dependencies are divided on two parts, the classical:

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

most specifics packages:

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

Download GenVM

GenVM is available on GitHub as project “genvm”.

You can download:

For history and development, you can clone the repository:

fhh@aaricia ~ $ git clone https://github.com/genvm/genvm.git
Note:
The project is also available from SourceForge for history reasons, the official repository is now the GiHub one.

Install GenVM

Download archive on desired format (in tar.gz in or example), extract it and copy genvm on /usr/bin:

fhh@aaricia ~/tmp $ wget -q https://github.com/genvm/genvm/archive/2.0.tar.gz -O - | tar xzvf -
genvm-2.0/
genvm-2.0/genvm
fhh@aaricia ~/tmp $ su -c "cp genvm-2.0/genvm /usr/bin/"
Password:

finally adapt permissions:

fhh@aaricia ~/tmp $ su -c "chown root.root /usr/bin/genvm;chmod 755 /usr/bin/genvm;ls -l /usr/bin/genvm"
Password: 
-rwxr-xr-x 1 root root 25946 Aug 15 13:19 /usr/bin/genvm

GenVM is then available:

fhh@aaricia ~/tmp $ genvm 
/usr/bin/genvm [options] <hard drive image>
...