Programster's Blog

Tutorials focusing on Linux, programming, and open source

Set Up Ubuntu 16.04 KVM Server

This tutorial will turn your baremetal Ubuntu 16.04 server into a KVM host. This tutorial will just cover installation, but feel free to read my other KVM tutorials as and when you need them, such as for installing guests and setting up a network bridge.

Similar Posts

Hardware Requirements

For the time being, you need a dedicated server, or your own physical machine. You cannot setup a KVM Hypervisor on a VPS, such as a Digital Ocean or AWS EC2 instance.

Version Info

  • libvirtd (libvirt) 1.3.1
  • QEMU emulator version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.14)

Installation Steps

Check Compatibility

First, let's check that the machine you are trying to set up as a KVM host is compatible:

sudo apt-get install cpu-checker -y
  • Alternatively, run egrep -c '(svm|vmx)' /proc/cpuinfo and if it returns a number greater than 0, you should be fine.

Install Packages

sudo apt-get install qemu-kvm libvirt-bin bridge-utils virtinst -y

Note: You will also need virt-viewer if you want to install via VNC another day.

At this point we have a choice of creating a new user to manage the KVM virtual machines, or to make the current logged in user the manager. Pick one.

Please choose one of either of the options below:

Option 1 - Make Current User KVM Manager

sudo usermod --append --groups libvirtd $USER

Option 2 - Create KVM User

Add a subuser with sudo priviledges and a home directory:

sudo useradd -d /home/$KVM_USER -m $KVM_USER
sudo passwd $KVM_USER
echo "$KVM_USER  ALL=(ALL:ALL) ALL" | sudo tee --append /etc/sudoers

Alternatively, you could use the adduser $KVM_USER command instead of useradd as this will automatically prompt you for a password and set up a home directory

When I tried to run everything as root instead of creating a user I received permission issues with the created disk images that were automatically made.

Add the kvm user to the libvirtd group

sudo usermod --append --groups libvirtd $KVM_USER

Log in as the kvm user. All commands from here on will be executed within this account.


Check the Installation

Check that installation went okay by running the following command:

sudo virsh -c qemu:///system list

Which should output:

 Id    Name                           State


You now have a working KVM Host on which you can deploy virtual machines. I now suggest you read my getting started with KVM article so that you can quickly start deploying your own virtual machines with little to no effort/research.


Please refer here.