How to Manage VMs with `virt-manager` on Arch Linux

How to Manage VMs with virt-manager on Arch Linux

Managing virtual machines (VMs) on Arch Linux can be a powerful way to test other operating systems, run isolated applications, or simulate entire networks. One of the most accessible tools for this is virt-manager — the Virtual Machine Manager. It provides a graphical interface to manage KVM-based virtual machines, and it integrates well with libvirt, offering a clean and efficient experience even on minimalist systems like Arch Linux.

In this guide, we’ll go through the installation, setup, and usage of virt-manager on Arch Linux, including network setup, storage management, and VM creation. Whether you’re a seasoned sysadmin or an enthusiastic Linux user, this walkthrough will help you leverage the full capabilities of virtual machines on your Arch system.


What is virt-manager?

virt-manager (Virtual Machine Manager) is a desktop user interface for managing virtual machines through libvirt. It supports KVM, QEMU, and other virtualization technologies. virt-manager simplifies tasks like:

  • Creating virtual machines from ISO images
  • Configuring CPU, memory, and storage
  • Managing networking (NAT, bridged, etc.)
  • Taking and restoring snapshots
  • Accessing VM consoles through SPICE or VNC

For Arch Linux users, it brings a practical GUI alternative to CLI-heavy tools like virsh.


Prerequisites

Before you begin, make sure:

  • You’re running Arch Linux with a relatively recent kernel
  • Your CPU supports hardware virtualization (Intel VT-x or AMD-V)
  • Virtualization is enabled in your system’s BIOS/UEFI
  • You have administrative (sudo) privileges

You can verify CPU virtualization support with:

egrep -c '(vmx|svm)' /proc/cpuinfo

If the output is 0, your CPU might not support virtualization or it might be disabled in BIOS/UEFI.


Installing virt-manager and dependencies

On Arch Linux, installation is straightforward using the official repositories. Run the following command:

sudo pacman -S virt-manager qemu vde2 ebtables dnsmasq bridge-utils libvirt

Here’s a brief on each package:

  • virt-manager: GUI for VM management
  • qemu: The core virtualization backend
  • libvirt: Abstraction layer and service for managing VMs
  • vde2, ebtables, dnsmasq, bridge-utils: Required for various networking options

You may also want ovmf if you’re planning to boot UEFI-based virtual machines:

sudo pacman -S edk2-ovmf

Configuring libvirt and KVM

Once installed, you’ll need to make sure libvirt is configured correctly.

Load the necessary kernel modules

KVM requires kernel modules. Load them using:

sudo modprobe kvm
sudo modprobe kvm_intel   # For Intel CPUs
# or
sudo modprobe kvm_amd     # For AMD CPUs

You can add these modules to /etc/modules-load.d/virt.conf for persistence:

kvm
kvm_intel  # or kvm_amd

Starting and Enabling Services

Start and enable the libvirtd service:

sudo systemctl enable --now libvirtd.service

Check the service status to confirm it’s running:

systemctl status libvirtd

Setting User Permissions

By default, only users in the libvirt group can manage VMs without root.

Add your user to the group:

sudo usermod -aG libvirt $(whoami)

Log out and log back in for the group change to take effect.

To verify:

groups

You should see libvirt in the list.


Using virt-manager

Once everything is set up, you can launch virt-manager from your application menu or terminal:

virt-manager

Creating a New Virtual Machine

  1. Click “New” in the top-left corner.
  2. Choose Installation Media – ISO or network boot (PXE).
  3. Select ISO Location – Use local ISO or browse.
  4. Allocate Memory and CPU – Assign RAM and CPU cores.
  5. Create Disk Image – Allocate storage (e.g., 20GB).
  6. Name Your VM – Choose a name and finalize the setup.

Once created, the VM will appear in the main list. You can start, pause, or delete VMs from here.

Managing VM Settings

Right-click on a VM → “Open” → Click the lightbulb icon to open the details panel. From here you can:

  • Add/remove hardware (disk, network interfaces)
  • Adjust memory or CPU allocation
  • Change boot order
  • Attach USB devices
  • Configure display settings (SPICE/VNC)

Snapshots and Cloning

virt-manager supports:

  • Snapshots: Great for creating restore points before risky operations.
  • Cloning: Useful for duplicating VM environments.

To take a snapshot:

  • Select VM → “Snapshots” tab → Click “Take Snapshot”

To clone:

  • Right-click VM → “Clone” → Follow the wizard

Networking Options

By default, virt-manager uses NAT (via dnsmasq), which is fine for most users. But you can set up bridged networking if you need VMs to have direct access to the LAN.

NAT (Default)

  • Simple and requires no extra setup
  • Suitable for internet access from VM
  • Not accessible from LAN

Bridged Networking

To set up bridged networking:

  1. Install netctl or use systemd-networkd (depending on your network manager)
  2. Create a bridge interface, e.g., br0
  3. Attach bridge to physical NIC (e.g., enp3s0)
  4. Configure VM network to use br0 instead of virbr0

For example, a basic netctl bridge profile might look like:

Description='Bridge connection'
Interface=br0
Connection=bridge
BindsToInterfaces=(enp3s0)
IP=dhcp

Don’t forget to restart networking services and ensure br0 is active before launching VMs.


Storage Management

Virtual machine disks are usually stored in /var/lib/libvirt/images/. virt-manager lets you:

  • Use raw or qcow2 disk formats
  • Create thin-provisioned or pre-allocated storage
  • Resize disks after creation (with care)
  • Attach external disk images (e.g., .img, .iso)

To manage storage pools:

  1. Go to Edit → Connection Details → Storage
  2. Click the + icon to add a new pool (e.g., a custom folder or external disk)
  3. Define name, path, and format

Troubleshooting Common Issues

“No connection to hypervisor” error

  • Make sure libvirtd is running
  • Verify you’re in the libvirt group
  • Use sudo virsh list --all to test connectivity

Missing UEFI boot option

  • Install edk2-ovmf
  • In VM settings → Firmware → Select “UEFI” instead of BIOS

VMs can’t connect to the internet

  • Check if dnsmasq and virbr0 are active:

    ip a
    systemctl status libvirtd
    

Poor performance

  • Enable CPU virtualization in BIOS
  • Assign more RAM or CPU
  • Use virtio drivers for storage/network for better performance

Conclusion

Using virt-manager on Arch Linux makes managing virtual machines a lot simpler, especially for users who prefer GUI-based administration. With support for UEFI, snapshots, cloning, and flexible networking, it’s a full-featured solution for everything from basic desktop virtualization to advanced system simulations.

Thanks to Arch Linux’s rolling-release model and the power of KVM/QEMU under the hood, you can expect virt-manager to stay up-to-date and powerful. Whether you’re testing new distros, building a homelab, or running VMs in production, virt-manager is a reliable tool to have in your toolkit.