aAPT
dDebian
fFFmpeg
jJava
mMercurial: Usage
oOCaml
pPostgreSQL

Home OS

KVM

Host

Initial setup

Pre-requisites: qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon qemu-utils.

Add local user to libvirt group adduser user libvirt.

Network setup

Load vhost_net kernel module modprobe vhost_net and add it to /etc/modules.

NAT

Start & autostart virtual network:

virsh net-list --all
virsh net-start default
virsh net-autostart default

Bridge

Comment out the primary interface completely in /etc/network/interfaces:

#iface eno1 ...
Bridge with DHCP server
auto br0
iface br0 inet dhcp
   pre-up ip tuntap add dev tap0 mode tap user root
   pre-up ip link set tap0 up
   bridge_ports all tap0
   bridge_stp off
   bridge_maxwait 0
   bridge_fd      0
   post-down ip link set tap0 down
   post-down ip tuntap del dev tap0 mode tap
Static bridge (192.168.1.10 == host address)
auto br0
iface br0 inet static
   pre-up ip tuntap add dev tap0 mode tap user root
   pre-up ip link set tap0 up
   bridge_ports eno1 tap0
   address 192.168.1.10
   broadcast 192.168.1.255
   netmask 255.255.255.0
   gateway 192.168.1.1
   dns-nameservers 8.8.8.8
   bridge_stp off
   bridge_maxwait 0
   bridge_fd 0
   post-down ip link set tap0 down
   post-down ip tuntap del dev tap0 mode tap

Guest

Windows server + HP ROK (HPE OEM Microsoft Windows Server Reseller Option Kit)

Run dmidecode -t system on the host and note the following fields:

  1. Product Name
  2. Serial Number
  3. UUID
  4. SKU Number
  5. Family

Add smbios section (under the domain root element before the os tag)

  <sysinfo type="smbios">
    <bios>
      <entry name="vendor">HPE</entry>
    </bios>
    <system>
      <entry name="manufacturer">HPE</entry>
      <entry name="product">PRODUCT_NAME</entry>
      <entry name="serial">SERIAL_NUMBER</entry>
      <entry name="uuid">UUID</entry>
      <entry name="sku">SKU_NUMBER</entry>
      <entry name="family">FAMILY</entry>
    </system>
  </sysinfo>

and restart the guest.

Guest additions

Ping the guest:

virsh qemu-agent-command DOMAIN '{"execute":"guest-ping"}'

Client

Pre-requisites: virt-manager gir1.2-spiceclientgtk-3.0.