Ubuntu 18.04: Install KVM for virtualization

This article will describe installing KVM.

1 Install qemu-kvm and libvirt

Install qemu-kvm package and some packages for virtual machine operation.

$ sudo apt install -y qemu-kvm libvirt0 libvirt-bin \
  virt-manager libguestfs-tools

2 Bridge interface

The bridge interface is needed for accessing virtual machine via network from other machine.

3 libvirt group

The user in libvirt group can run virt-manager and virsh without sudo.

$ sudo gpasswd libvirt -a <username>
$ sudo reboot

4 Remote access via SSH

virt-manager and virsh provdes remote access via SSH. If you uses SSH public key authentication, you can omit inputing password.

Create SSH keys on client which uses remote access via SSH.

$ ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ""
Generating public/private rsa key pair.
Your identification has been saved in /home/hiroom2/.ssh/id_rsa.
Your public key has been saved in /home/hiroom2/.ssh/id_rsa.pub.
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB... username@clientname

Add SSH public key entry to ~/.ssh/authorized_keys on server which is installed KVM.

$ cat ~/.ssh/authorized_keys
ssh-rsa AAAAB... username@clientname

Specify server URI with -c option on client.

$ virsh -c qemu+ssh://username@servername/system

Setting server URI to VIRSH_DEFAULT_CONNECT_URI is equal with specifying server URI with -c option. Write VIRSH_DEFAULT_CONNECT_URI settings in your .bashrc if you need.

$ export VIRSH_DEFAULT_CONNECT_URI=qemu+ssh://username@servername/system
$ virsh

In case of virt-manager, click "Add Connections" and specify server.

File -> Add Connection


5 Add a pool for ISO file

Download ubuntu-18.04-desktop-amd64.iso from this page and add a pool for ISO file at /var/lib/libvirt/isos.

$ wget http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso
$ sudo mkdir /var/lib/libvirt/isos
$ sudo mv ubuntu-18.04-desktop-amd64.iso /var/lib/libvirt/isos/
$ sudo chown libvirt-qemu:libvirt \

In case of virsh, use the following command.

$ virsh pool-define-as isos dir - - - - /var/lib/libvirt/isos
$ virsh pool-autostart isos
$ virsh pool-start isos

In case of virt-manager, left click on "QEMU/KVM" and right click on "Details".

$ virt-manager


Add a pool with pressing "+" button at the below left. Input "Name" and select "dri:Filesystem Directory" at "Type".


Input "/var/lib/libvirt/isos" at "Target Path".


The pool for ISO file is added.


6 Create virtual machine with virt-manager

Left click on "QEMU/KVM" and right click "New".

$ virt-manager


Select "Local install media" and click "Forward".


Select "Use ISO image" and click "Browse".


Select ISO file in "isos" pool and click "Choose Volume".


ISO file is selected.

If "OS type" and "Version" is Unknown, select these manually. In case of Ubuntu 18.04, select Linux as "OS type" and nearest version of Ubuntu as "Version"


Input memory size and CPU number.


Create storage. By default, storage will be created at /var/lib/libvirt/images directory which is "default" pool.


Input virtual machine name.

Check "Customize configuration before install" for changing keyboard layout and storage type.

Select network. If you create bridge interface with nmcli or systemd-networkd, virt-manager does not display bridge interface. But you can use bridge interface with "Specify shared device name".


Select "IDE Disk1". Set "VirtIO" as "Disk bus".


Select "Display Spice". Set your keyboard layout as "Keymap". In case of Japanese, keyboard layout is "ja".


Select "NIC". You can modify MAC address at this stage.


Clicking "Begin Installation" starts installation. Install OS with the same way as physical machine.