3 min read · Remote & VMs

Virtual Machine Manager

QEMU/KVM with a GUI - snapshots, ISO installs, bridged networking.

Full VM control including snapshots and ISO installs. For a throwaway VM with no GUI, Multipass is quicker.

Install

sudo apt update
sudo apt install -y \
    qemu-system-x86 libvirt-daemon-system libvirt-clients \
    virtinst virt-manager \
    ovmf libosinfo-bin cpu-checker

qemu-kvm was a transitional package and no longer exists on Ubuntu 24.04 or Debian 11 and later — apt will say “Note, selecting ‘qemu-system-x86’ instead of ‘qemu-kvm’” at best, and fail outright at worst. Install qemu-system-x86 directly.

On a hardware enablement kernel, use the matching HWE build so the userspace tracks the backported kernel:

sudo apt install -y qemu-system-x86-hwe

To install for whatever architecture the host happens to be, qemu-system pulls in the right qemu-system-<arch> without naming x86 explicitly.

ovmf provides UEFI firmware, which modern server images expect.

bridge-utils is not in the list: it is deprecated, brctl is superseded by ip link and bridge link, and libvirt does not need it. See Provisioning a host for the checks that replace it.

Check KVM

kvm-ok      # expect "KVM acceleration can be used"

Groups and services

sudo systemctl enable --now libvirtd
sudo systemctl enable --now virtlogd

sudo usermod -aG libvirt $USER
sudo adduser $USER kvm

Log out and back in — group changes do not apply to the running session.

Networking

For a VM that needs an address on the LAN, choose network source Bridge device with device name virbr0. See Static networking for pinning the address.

Guest additions

sudo apt install spice-vdagent   # inside the guest, then reboot

Gives auto screen resizing, clipboard sharing, and display sync. Resizing does not work properly without it.