Windows on ArchLinux


This is not a full installation tutorial, rather a memo to remind me how I managed to get a decent running Windows 11 on my ArchLinux installation.

Check virtualization is enabled in BIOS

lscpu | grep -i virtualization

Hypervisor: Qemu/KVM with libvirt

I used to use VirtualBox and I liked it a lot, because it’s super easy. However the performance is not optimal, I don’t like that it’s not Linux Kernel native, and the command line is barely usable. I am already using Qemu/KVM with incus at a basic level, so I decided to do the jump to libvirt. It’s a little bit complicated than VirtualBox, but it’s manageable if you have the time to understand the bits and pieces.

Overview

In libvirt a domain is a virtual machine. Domains are Qemu machines emulated by KVM (when/if possible, which is all the time on a modern AMD64 architecture).

libvirt is a daemon that “connects” to qemu. There are two modes: system and session. Forget session, use system.

All the configuration is done by XML.

ArchLinux Packages

Configuration

I added myself to the libvirt and wheel group

$ sudo usermod -aG libvirt,wheel lyderic

I changed a config file

In /etc/libvirtd/qemu.conf, I added:

user = "lyderic"
group = "lyderic"

I created a btrfs subvolume for libvirt

$ sudo btrfs subvolume create /libvirt
$ sudo chown -v lyderic: /libvirt
$ ln -s /libvirt /home/lyderic/libvirt

Systemd

I didn’t enable or start nothing. When I want to use the hypervisor, I do:

$ sudo systemctl start libvirtd.service

Windows 11 Installation

I found this video very helpful.

It explains how to get virtio installed on Windows. Get as much virtio devices as possible (disk, network, video…). Once the drivers are installed in Windows, you get stellar performance.

The web site where virtio ISOs can be found here.