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.
| Layer | Component | Responsibility |
|---|---|---|
| User interface | virt-manager | Wizards, hardware editor, console viewer, performance graphs |
| Management API | libvirt daemons | Stores domain XML, manages storage pools, networks and permissions |
| Machine emulator | QEMU | Emulates devices such as disks, NICs and graphics for each guest |
| Hypervisor | KVM kernel module | Runs guest CPU code directly using Intel VT-x or AMD-V |
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.
| Setting | Typical choice | What it affects |
|---|---|---|
| Chipset | Q35 | Modern PCIe topology instead of the older i440FX |
| Firmware | UEFI (OVMF), Secure Boot when needed | Boot method; required for Windows 11 and many modern installs |
| CPU model | host-passthrough | Exposes host CPU features for best performance |
| vCPUs and memory | 2 to 8 vCPUs, 2 to 16 GiB | Guest capacity; overcommit with care |
| Disk bus | VirtIO with qcow2 or raw image | Disk throughput and latency |
| Network device | virtio-net on NAT or a bridge | Network performance and reachability |
| Display | SPICE with QXL or virtio-gpu | Console responsiveness, clipboard sharing |
| TPM | Emulated TPM 2.0 | Needed for BitLocker and Windows 11 |
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 compared with related virtualization tools
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.
| Tool | Interface | Best suited for | Main limitation |
|---|---|---|---|
| virt-manager | Desktop GUI over libvirt | Workstations and small host groups | No clustering or web access |
| virsh | Command line over libvirt | Scripting and full XML control | Steeper learning curve |
| GNOME Boxes | Simplified desktop GUI | Casual users testing distributions | Few advanced options |
| Proxmox VE | Web interface, own stack | Clusters with HA and backups | Requires a dedicated platform |
| Cockpit machines | Web console over libvirt | Single servers managed from a browser | Fewer hardware options |
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/cpuinfoand check that/dev/kvmexists. - Enable the daemon, for example with
systemctl enable --now libvirtdor 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.
| Symptom | Likely cause | Fix |
|---|---|---|
| Guests run very slowly | KVM acceleration unavailable, pure emulation | Enable VT-x or AMD-V in firmware and load kvm modules |
| Cannot connect to qemu:///system | User not in libvirt group | Add the group and start a new login session |
| Guest list appears empty | Connected to session instead of system | Switch the connection URI |
| Windows installer sees no disk | Missing VirtIO storage driver | Attach the virtio-win ISO and load the driver |
| Guest unreachable from LAN | NAT network in use | Attach the guest to a bridge |
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.