Install KVM Hypervisor on Ubuntu 22.04|20.04

Posted on 298 views

In this guide, you will learn to Install KVM Hypervisor Virtualization server on Ubuntu 22.04|20.04 Linux system. KVM (Kernel-based Virtual Machine) is a free and open source virtualization solution for Linux Systems running on x86 hardware. It requires the server to have CPU virtualization extensions (Intel VT or AMD-V).

Check the link for installation of KVM on FedoraRHEL/CentOS 8

KVM consists of a loadable kernel module,kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko.

Step 1: Install KVM / QEMU on Ubuntu 22.04|20.04

Here are the steps to follow when installing KVM Virtualization tool on Ubuntu 22.04|20.04 Linux machine. All KVM packages for Ubuntu are available on upstream repositories. The apt package manager is used for all packages installation.

sudo apt update
sudo apt -y install qemu-kvm libvirt-daemon bridge-utils virtinst libvirt-daemon-system

Aso install other useful Virtual Machine management tools.

sudo apt -y install virt-top libguestfs-tools libosinfo-bin  qemu-system virt-manager

Ensure the vhost_net module is loaded and enabled.

$ sudo modprobe vhost_net 
$ lsmod | grep vhost
vhost_net              24576  0
tun                    49152  1 vhost_net
vhost                  49152  1 vhost_net
tap                    28672  1 vhost_net

$ echo vhost_net | sudo tee -a /etc/modules 

This will give you tools similar to Linux ls, cat, top command for use with Virtual Machines.

Step 2: Create KVM Bridge on Ubuntu 22.04|20.04 (Optional)

For your Virtual Machines to talk to the outside world, a Linux bridge is required. Installation of KVM on Ubuntu 22.04|20.04 creates a Linux bridge called virbr0. This can be used for all test environments.

But if you want to your VMs to be accessible over the network, you’ll need to create a bridge on physical network interface attached to your machine.

Create one on your Debian server/workstation like below.

sudo nano /etc/network/interfaces

My bridge configuration uses a network interface (ens33) to create a Linux bridge called br1. Replace the values provided with yours.

# Primary network interface
auto ens33
iface ens33 inet manual

# Bridge definitions
auto br1
iface br1 inet static
bridge_ports ens33
bridge_stp off

Reboot your machine for the network configuration changes to take effect.

sudo reboot

Confirm IP network details.

$ ip addr

See screenshot below.


Step 3: Create Virtual Machine on KVM

You can use Virtual Machine Manager GUI to create an instance on KVM or via virt-install command line tool.

For virt-install, installation snippet is shared below.

sudo virt-install \
  --name de11 \
  --ram 2048 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/deb11.qcow2,size=20 \
  --os-type linux \
  --os-variant debian10 \
  --network bridge=br1 \
  --graphics none \
  --console pty,target_type=serial \
  --location '' \
  --extra-args 'console=ttyS0,115200n8 serial'

This will download kernel and initrd image before starting installation.


The installation process will start shortly. Follow installation prompts for Debian system on KVM.




Gravatar Image
A systems engineer with excellent skills in systems administration, cloud computing, systems deployment, virtualization, containers, and a certified ethical hacker.