PoC: KVM

From Coolscript
Revision as of 20:55, 4 February 2026 by Admin (talk | contribs) (Created page with "kvm testsetup at home ==System== vmadmin@ts01:~$ sudo -i root@ts01:~# cat /etc/os-release PRETTY_NAME="Ubuntu 25.10" NAME="Ubuntu" VERSION_ID="25.10" VERSION="25.10 (Questing Quokka)" VERSION_CODENAME=questing ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

kvm testsetup at home

System

vmadmin@ts01:~$ sudo -i
root@ts01:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 25.10"
NAME="Ubuntu"
VERSION_ID="25.10"
VERSION="25.10 (Questing Quokka)"
VERSION_CODENAME=questing
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=questing
LOGO=ubuntu-logo

Install Packages

root@ts01:~# apt install -y   qemu-kvm \
libvirt-daemon-system \
libvirt-clients \
bridge-utils \
virt-manager \
cpu-checker

Libvirt

  • Enable
root@ts01:~# systemctl enable --now libvirtd
  • Status
root@ts01:~# systemctl status libvirtd
● libvirtd.service - libvirt legacy monolithic daemon
    Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; preset: enabled)
    Active: active (running) since Wed 2026-02-04 19:32:47 CET; 52min ago
 Invocation: de3b4269f9074f69aef468813b833a4b
TriggeredBy: ● libvirtd.socket
            ● libvirtd-admin.socket
            ● libvirtd-ro.socket
      Docs: man:libvirtd(8)
            https://libvirt.org/
  Main PID: 26280 (libvirtd)
     Tasks: 25 (limit: 32768)
    Memory: 24.1M (peak: 51M)
       CPU: 9.655s
    CGroup: /system.slice/libvirtd.service
            ├─26280 /usr/sbin/libvirtd --timeout 120
            ├─26388 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
            └─26389 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper

Feb 04 20:03:14 ts01 dnsmasq-dhcp[26388]: DHCPDISCOVER(virbr0) 52:54:00:2a:f9:66
Feb 04 20:03:14 ts01 dnsmasq-dhcp[26388]: DHCPOFFER(virbr0) 192.168.122.128 52:54:00:2a:f9:66root@ts01:~# kvm-ok



Virsh

  • List
root@ts01:~# virsh list --all
virsh list --all
Id   Name       State
--------------------------
  • Node Info
root@ts01:~# virsh nodeinfo
CPU model:           x86_64
CPU(s):              24
CPU frequency:       1197 MHz
CPU socket(s):       1
Core(s) per socket:  12
Thread(s) per core:  2
NUMA cell(s):        1
Memory size:         63375964 KiB
  • Net List
root@ts01:~# virsh net-list --all
Name      State    Autostart   Persistent

default   active   yes         yes
  • Set Start
root@ts01:~# virsh net-start default
root@ts01:~# virsh net-autostart default
  • Prepare for the first Debian Image
root@ts01:~# cp /home/admin/debian-13.3.0-amd64-netinst.iso /var/lib/libvirt/images
root@ts01:~# chmod 666 /var/lib/libvirt/images/debian-13.3.0-amd64-netinst.iso
root@ts01:~# #Do this only on a sandbox
root@ts01:~# chmod 777 /var/lib/libvirt/images

Prepare User

  • User admin:
vmadmin@ts01:~$ usermod -aG libvirt,kvm $USER
vmadmin@ts01:~$ sudo usermod -aG libvirt,kvm $USER
vmadmin@ts01:~$ less /etc/groups
  • User admin in xrdp:
virt-manager

Installation Screenshots

  • VM Installer01

  • VM Installer02

  • VM Installer05

  • VM Installer06

  • VM Installer07

  • VM Installer08

  • VM Installer09

  • VM Installer10

  • VM Installer11

  • VM Installer12


Advanced - Bridging

  • advanced, make the vm bridged
root@ts01:~# sudo virsh net-define /dev/stdin <<EOF
<network>
  <name>br0</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
</network>
EOF
  • Start
root@ts01:~# sudo virsh net-start br0
sudo virsh net-autostart br0
Network br0 started

Network br0 marked as autostarted

  • Shutdown running VM
root@ts01:~# virsh shutdown debian13
Domain 'debian13' is being shutdown
  • Edit
virsh edit debian


  • Change:
<interface type='network'>
 <source network='default'/>
  • To:
<interface type='bridge'>
 <source bridge='br0'/>
 <model type='virtio'/>
</interface>
Domain 'debian13' XML configuration edited.