How to install KVM on Ubuntu 14.04

On this page

KVM (Kernel-based Virtual Machine) is a virtualization extension for the Linux Kernel. KVM requires a processor with hardware virtualization support which we will check later in this tutorial. There are many Operating systems that are supported by KVM, which include Linux, BSD, Solaris, Windows and others. It also supports Android 2.2, GNU/Hurd (Debian K16), Minix 3.1.2a, all of these work just with some limitations.

This tutorial explains the installation of KVM on an Ubuntu Desktop 14.04 and how to create a Ubuntu guest VM.

KVM Tools Installation

Before you proceed with the installation you must confirm that your system supports KVM. As mentioned earlier, it requires hardware virtualization support in the CPU. Type in the following command to check the compatibility:

egrep -c '(vmx|svm)' /proc/cpuinfo

If the output is 0, then KVM won't work as the system does not support VMX nor SVM hardware virtualization. If the output is 1 or greater than 1 it means your system is all set and ready to go for KVM installation.

The above command includes installation of 4 packages kvm, libvirt-bin, ubuntu-vm-builder and bridge-utils. You are done with the installation for now. Just make sure your Ubuntu username is addded to the group libvirtd by typing:

sudo adduser `id -un` libvirtd

In the next step, I will install a GUI tool for ubuntu which makes the process of setting up a VM easier.

Installing a graphical user interface for KVM

Install the virt-manager application with apt..

sudo apt-get install virt-manager

Creating a KVM guest machine

From here on, we will be using the GUI to work with as the setup of a VM with the terminal is quite difficult and takes too long for the setup.

After you have installed virt-manager just go ahead and start it by typing:

virt-manager

This should start the virtual manager application for you.

Then start with creating a new virtual machine by hitting the new button.

Enter the name of your virtual machine. Select your installation media type and click forward. After that, select the ISO image file that contains the operating system to be installed in the VM or select the CD/DVD-ROM to start the installation.

After the above step, you will have to set the amount RAM and CPU's that will be available to that virtual machine.

Finally, you will get a confirmation screen that shows the details of your virtual machine where you can select the advanced network options. I will use a NAT network here.

* ALWAYS manually create a bridge and use that instead of the built-in bridge created by libvirt

* virt-manager can be installed on any Linux workstation on the network. It can manage a VM-host from anywhere in the world, provided ssh access is working.

* Some of the defaults for new machines aren't clear - for most Linux distros, use virtio drivers for networking and disk controllers for the best performance and lower resource use. TinyCore doesn't know virtio drivers, so treat it like Windows and go with SATA and E1000 drivers.

* If using file local storage for the VM "virtual disks", disable buffering. Also, manually creating empty qcow2 storage before creating the VM provides efficient storage use and very fast performance. qemu-img create -f qcow2 is the start of the command for this.

The exact software version that an article is written for is mentioned in the title. This article is for Ubuntu 14.04. Excurse on Ubuntu naming schemes: Ubuntu encodes the date in it's name, so 14.04 means that this article has been written and tested for the Ubuntu version that got released in April (04) in the year 2014 (14). Ubuntu and other Linux vendors do not change the way a software gets configured within one version, so this article works for the named ubuntu version today in the exact same way that it worked in 2014 when it was written and it will work the same way for that Ubuntu version in 10 years. As you can see, it makes much more sense to name the exact software version a guide is written for as it is done here than writing a date, because someone can correct a typo today in an Ubuntu 12.04 guide so it ets an updated date from today and that article would still not work with Ubuntu 16.10. So when you seek for a tutorial, then seek for one that is written for the OS version that you use instead of looking at a updated date which says nothing about compatibility with your OS.