KVM on Fedora
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.
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”.
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.
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.
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.