Skip to main content

KVM

KVM (Kernel-based Virtual Machine) is a hypervisor built into the Linux kernel.

  1. Install libvirt Packages
    sudo pacman -S qemu libvirt edk2-ovmf virt-manager nfs-utils
    
    # optional dependencies
    iptables-nft dnsmasq   # for default NAT/DHCP networking
    bridge-utils           # for bridged networking
    openbsd-netcat         # for remote management over SSH
    
  2. Add user to libvirt groups
    sudo usermod -aG libvirt,kvm,input $USER
    
  3. Start libvirtd daemon
    sudo systemctl enable --now libvirtd
    
  4. Create network bridge with nmcli
    nmcli connection add type bridge ifname br0 con-name "Netzwerkbrücke" stp no
    nmcli connection add type bridge-slave ifname enp39s0 con-name "Ethernet" master br0
    nmcli connection down "Kabelgebundene Verbindung 1"
    nmcli connection up "Netzwerkbrücke"
    
  5. Define bridge network XML file, e.g. as br0.xml
    <network>
      <name>br0</name>
      <forward mode='bridge'/>
      <bridge name='br0'/>
    </network>
    
  6. Add bridge network to virt-manager
    virsh -c qemu:///system net-define br0.xml
    virsh -c qemu:///system net-autostart br0
    
  7. Disable COW on Btrfs (optional, recommended)
    sudo chattr +C /var/lib/libvirt/images