Over the past few months, my daily driver (personal and work) has been a Framework Laptop running Fedora.

The laptop is great and runs Fedora amazingly well (compatible, fast and reliable). Thanks to the use of browser-based applications and the growing support for Linux, 99% of my work can be completely natively from Linux.

However, there are still a few frustrating exceptions that force me back to Windows via a virtual machine.

I have a long history with VMWare, prodominately within the enterprise, supporting vSphere, NSX, Horizon, etc.

As a result, I have always favoured VMWare Workstation (Windows, Linux) and VMware Fusion (macOS) for client-side virtualisation.

However, with this new setup, I thought I would finally make the jump to an open-source Kernel-based Virtual Machine (KVM). Specifically, a combination of QEMU, Libvirt and Virt Manager.

Setup QEMU, Libvirt and Virt Manager

Confirm your processor has Intel-VT or AMD-V enabled.

grep -E --color '(vmx|svm)' /proc/cpuinfo

Ensure “VMX” or “SVM” are listed in the output.

KVM on Fedora

Confirm the Kernel-based Virtual Machine (KVM) module is enabled.

lsmod | grep -i kvm

Ensure “kvm” is listed in the output. For example, “kvm_intel”.

KVM on Fedora

Install the required virtualisation packages.

sudo dnf install -y qemu-kvm libvirt virt-install bridge-utils virt-manager

Specific packages include:

  • qemu-kvm: An emulator and virtualization package with hardware emulation.
  • libvirt: Configuration files required to run the libvirt daemon.
  • virtinst: Command line utilities for provisioning and modifying virtual machines.
  • Virt-install: Command line tool for creating virtual machines.
  • bridge-utils: A set of tools for creating and managing bridge devices.
  • virt-manager: Graphical user interface for managing virtual machines.

Finally, install the required virtualization modules using the command below.

sudo dnf install -y libvirt-devel virt-top libguestfs-tools guestfs-tools

That’s it! QEMU, Libvirt and Virt Manager are now installed.

To launch a virtual machine, you must first start the virtualization daemon.

sudo systemctl start libvirtd

Confirm the demon is running.

sudo systemctl status libvirtd

Ensure the status is “active (running)”. You can also check the CPU and Memory utilisation.

KVM on Fedora

If you plan to run virtual machines frequently, it might be worth starting the service on boot. This can be done using the following command.

sudo systemctl enable libvirtd

Finally, launch the Virt Manager application to create a virtual machine.

KVM on Fedora

Alternatively, virtual machines can be created via the command line tool, virt-install.

If you plan to run Windows 10/11 as a guest virtual machine, I recommend reviewing the performance guide on Medium by Leduccc, which includes a lot of great tips and tricks.