Install And Set Up KVM On Ubuntu 20.04 Focal Fossa Linux

KVM is Kernel-based Virtual Machine. It’s a module built directly into the Linux kernel that allows the operating system to act as a hypervisor. Although some people may prefer a third-party solution like VirtualBox, there’s no need to install extra software since the Linux kernel already gives us the necessary tools we need to make virtual machines.

KVM requires a little configuration if you want some conveniences like a graphical manager or the ability to allow VM guests to login from your network – but we’ll cover that in this guide. Once it’s up and running, you’ll find that KVM provides the most stable and seamless experience for your virtualization needs on Linux.

In this tutorial you will learn:

  • How to install necessary KVM utilities on Ubuntu 20.04
  • How to install and configure virt-manager
  • How to configure network interfaces for bridged connection
  • How to create a new virtual machine

Creating a new VM in virt-manager

Creating a new VM in virt-manager

Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System Installed or upgraded Ubuntu 20.04 Focal Fossa
Software KVM, virt-manager
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ – requires given linux commands to be executed as a regular non-privileged user

Install the KVM packages

Although KVM is a module built into the Linux kernel itself, it doesn’t mean that all the necessary packages are included in your Ubuntu install by default. You’ll need a few to get started, and they can be installed with this command in the terminal:

$ sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager

Configure the network bridge

In order for your virtual machines to access your network interface and be assigned their own IP addresses, we need to configure bridged networking on our system.

First, run the following Linux command in order to find out what name your network interface has been assigned. Knowing this will allow us to do additional configuration later.

$ ip a
Determine name of network interface

Determine name of network interface

In our case, the network interface is called enp0s3. Yours will likely be very similarly named.

In order to tell Ubuntu that we want our connection to be bridged, we’ll need to edit the network interfaces configuration file. Doing this won’t negatively impact your connection at all. It’ll just allow that connection to be shared with the VMs.

Use nano or your favorite text editor to open the following file:

$ sudo nano /etc/network/interfaces

When you first open this file, it may be empty or contain just a couple lines. Your bridge interface is called br0, so add the following line for the interface to come up by default:

auto br0

Below this line, add the following line for your current network interface (the one whose named we determined earlier).

iface enp0s3 inet manual

Next, you can add the bridge information. These lines tell Ubuntu that your bridge will use DHCP for automatic IP address assignment, and your bridge will manage your current interface.

iface br0 inet dhcp
    bridge_ports enp0s3

This is how your file should look once all the changes have been applied (if you also have a couple lines that were already there, it’s fine to have them too):

Network interfaces configuation file

Network interfaces configuation file

Save your changes and exit the file.

Add your user to the groups

In order to manage your virtual machine(s) without root privileges, your user will need to belong to two user groups. Run the following commands to add your user to the appropriate groups (replacing user1 with the name of your user):

$ sudo adduser user1 libvirt
$ sudo adduser user1 libvirt-qemu

When you’re done, you should restart your system to ensure that all of the changes done to your user and network configuration have a chance to take effect.

Creating a VM

When Ubuntu boots back up, you can open virt-manager from the application launcher. Although it may not look like much, this window will provide us with everything we need to manage our VMs.

To get started creating a new VM, click the upper left icon, which looks like a shiny computer screen.

Create a new VM

Create a new VM

Your new virtual machine is going to need an operating system. You’ll most likely be installing from an .iso file, so select this option on the first window. If you still need an operating system image, head over to Ubuntu 20.04 download and download one for free.

Select installation source

Select installation source

Browse to your installation file and select it.

Browse to installation media

Browse to installation media

You’ll also need to tell virt-manager what operating system you’re trying to install, if it doesn’t automatically determine it successfully.

Fill in OS information

Fill in OS information

On the next screen, allocate a reasonable amount of CPU and memory resources to your new virtual machine. Be careful not to give it too much.

CPU and memory allocation

CPU and memory allocation

The next screen will ask you about hard drive size. Once again, enter a reasonable amount – a virtual machine probably doesn’t need much.

Storage allocation

Storage allocation

Give your virtual machine a name and finalize your changes on the next screen. Click ‘Finish’ when you’re ready to begin the installation.

Finalize virtual machine settings

Finalize virtual machine settings

After clicking finish, the operating system will install as it usually would on a physical computer. When finished, you can continue using the virt-manager application to manage your virtual machine(s), including turning them on and off.


In this article, we learned how to use KVM and virt-manager to install and manage virtual machines on Ubuntu 20.04 Focal Fossa. We also saw how to configure network interfaces for bridged connections between the host machine and guest operating systems.

KVM is a very powerful tool, and paired with virt-manager makes for sleek and easy management of multiple virtual machines. Now that KVM is set up, you’ll have access to just about any operating system in a virtualized form, directly from your Ubuntu desktop.