virt-manager

On this page 7

virt-manager, the Virtual Machine Manager, is a graphical desktop application for creating, configuring and operating virtual machines through the libvirt management API. In Linux virtualization it is the standard point-and-click front end for KVM and QEMU guests, letting an administrator define hardware, install operating systems, open a guest console and watch performance without writing XML or typing long command lines.

virt-manager does not run virtual machines itself. It is a client of the libvirtd or modular libvirt daemons, which in turn start QEMU processes accelerated by the KVM kernel module. The same machines can therefore be managed interchangeably from virt-manager, from the virsh shell or from automation tools, because all of them read and write the same libvirt definitions.

How virt-manager works with libvirt, QEMU and KVM

virt-manager sits at the top of a four-layer virtualization stack on Linux. Each layer has a distinct responsibility, and understanding the split explains both its strengths and its limits.

LayerComponentResponsibility
User interfacevirt-managerWizards, hardware editor, console viewer, performance graphs
Management APIlibvirt daemonsStores domain XML, manages storage pools, networks and permissions
Machine emulatorQEMUEmulates devices such as disks, NICs and graphics for each guest
HypervisorKVM kernel moduleRuns guest CPU code directly using Intel VT-x or AMD-V
Layers of the KVM virtualization stack

Each virtual machine is stored by libvirt as a domain definition in XML, typically under /etc/libvirt/qemu/. When a user changes memory or adds a disk in virt-manager, the application edits that XML through the API. Changes made in virt-manager and in virsh are therefore identical in effect, and a definition created graphically can later be exported with virsh dumpxml.

virt-manager connects to a libvirt connection URI. The two local choices are qemu:///system, which manages system-wide guests owned by root, and qemu:///session, which runs unprivileged guests inside the user’s own account with more limited networking. Remote hosts are reached with URIs such as qemu+ssh://admin@host/system, tunneling the API over SSH.

Main features and configuration areas

virt-manager exposes the most common virtual hardware settings through its creation wizard and the per-guest details view. The table summarizes the areas administrators adjust most often and the values that are typical for a general-purpose Linux or Windows guest.

SettingTypical choiceWhat it affects
ChipsetQ35Modern PCIe topology instead of the older i440FX
FirmwareUEFI (OVMF), Secure Boot when neededBoot method; required for Windows 11 and many modern installs
CPU modelhost-passthroughExposes host CPU features for best performance
vCPUs and memory2 to 8 vCPUs, 2 to 16 GiBGuest capacity; overcommit with care
Disk busVirtIO with qcow2 or raw imageDisk throughput and latency
Network devicevirtio-net on NAT or a bridgeNetwork performance and reachability
DisplaySPICE with QXL or virtio-gpuConsole responsiveness, clipboard sharing
TPMEmulated TPM 2.0Needed for BitLocker and Windows 11
Common virt-manager settings and typical values

Beyond hardware, virt-manager manages storage pools and volumes, virtual networks, snapshots of running or stopped guests, and live migration between hosts that share storage. It also includes a built-in console using SPICE or VNC, so no separate viewer is required for daily work.

Paravirtualized Virtio devices are the most important performance choice. A guest with emulated IDE disks and an e1000 network card works, but VirtIO disk and network drivers deliver substantially higher throughput and lower CPU overhead. Linux guests include the drivers already, while Windows guests need the virtio-win driver ISO during installation.

virt-manager is one of several ways to manage virtual machines on Linux, and the right choice depends on scale, audience and the need for automation. The comparison below places it among its neighbors in the Virtualization topic.

ToolInterfaceBest suited forMain limitation
virt-managerDesktop GUI over libvirtWorkstations and small host groupsNo clustering or web access
virshCommand line over libvirtScripting and full XML controlSteeper learning curve
GNOME BoxesSimplified desktop GUICasual users testing distributionsFew advanced options
Proxmox VEWeb interface, own stackClusters with HA and backupsRequires a dedicated platform
Cockpit machinesWeb console over libvirtSingle servers managed from a browserFewer hardware options
virt-manager and neighboring management tools

Because GNOME Boxes, Cockpit and virt-manager can all use libvirt, a guest created in one often appears in the others. virt-manager is the power-user middle ground: more control than Boxes, less typing than virsh, but without the multi-node orchestration of a platform such as Proxmox VE.

Practical setup and permissions

A working setup needs hardware virtualization enabled in firmware, the KVM modules loaded and the libvirt service running. On most distributions the steps are installing the virt-manager package with qemu-kvm and libvirt, enabling the service, and adding the user to the libvirt group so that system connections work without a root password.

  • Confirm virtualization support with grep -E 'vmx|svm' /proc/cpuinfo and check that /dev/kvm exists.
  • Enable the daemon, for example with systemctl enable --now libvirtd or the modular virtqemud socket.
  • Add the user to the libvirt group and log in again.
  • Start the default NAT network, or create a Linux bridge for guests that must be reachable on the LAN.

The default network, usually named default on 192.168.122.0/24, uses NAT and suits most desktop use. Guests that host services for other machines generally need a bridge, because NAT hides them behind the host’s address.

Limitations and common problems

virt-manager is a convenient front end, not a complete platform. It has no built-in high availability, scheduler, role-based multi-tenant access or backup engine, and its development pace is modest. Some advanced options, such as detailed NUMA tuning or certain GPU passthrough settings, are reachable only by editing the domain XML directly in its XML tab.

SymptomLikely causeFix
Guests run very slowlyKVM acceleration unavailable, pure emulationEnable VT-x or AMD-V in firmware and load kvm modules
Cannot connect to qemu:///systemUser not in libvirt groupAdd the group and start a new login session
Guest list appears emptyConnected to session instead of systemSwitch the connection URI
Windows installer sees no diskMissing VirtIO storage driverAttach the virtio-win ISO and load the driver
Guest unreachable from LANNAT network in useAttach the guest to a bridge
Frequent virt-manager problems

In simple terms

A virtual machine is a complete computer that exists only as software inside a real computer. virt-manager is the control panel for those software computers on Linux. It lets a person create one, decide how much memory and storage it receives, install an operating system and view its screen in a window.

Behind the scenes, other components do the heavy work of actually running the machines. virt-manager simply makes that work visible and easy to manage, much as a car dashboard shows and controls an engine without being the engine.

A practical example

A software developer working on a Fedora workstation with 32 GiB of memory needs to test an application on Ubuntu Server and Windows 11. Using virt-manager, the developer creates two guests on the Q35 chipset with UEFI firmware: Ubuntu with 2 vCPUs, 4 GiB and a 30 GiB qcow2 disk, and Windows with 4 vCPUs, 8 GiB, an emulated TPM 2.0 and VirtIO drivers loaded from the virtio-win ISO.

Before each test run, the developer takes a snapshot, then reverts after the test to restore a clean system in seconds. Both guests run with near-native CPU performance through KVM, and the same definitions are later exported with virsh to recreate the setup on a colleague’s machine.