KVM On Arch
This is not intended to be a tutorial, but rather a walk-through of how I would install libvirt/kvm on Arch Linux.
virt-install is not needed if connecting remotely with virt-manager,
but it does provide
- enable libvirtd service
systemctl enable libvirtd
- add user to libvirt group
usermod -a -G libvirt <user>
# ~/.bashrc export LIBVIRT_DEFAULT_URI="qemu:///system"
The default network is defined in
- Start the default network
virsh net-start default.
- Permanently enable the default network
virsh net-autostart default.
Jump Host With
Abstract your jump host in
# ~/.ssh/config Host jumphost Hostname <ip address> Port 22 User <user> Host kvmhost Hostname <ip address> ProxyJump jumphost Port 22 User <user>
Enable serial console on guest.
systemctl enable serial-getty@ttyS0.service
I was going to try to figure out how to permantly set the cpu mode default
such that all virtualmachines will be capable of nested virtualization,
but it already is. Perhaps that is the default in
Anyway, in case you want to make sure nested virtualization is enabled in the host kernel.
Clone Ip Address Conflict
I found a great tutorial for assigning ip addresses.
The problem we need to solve here is that virtual machine clones won't necessarily
solicit a unique ip address, although a clone will have a new
So, you clone a vm:
virt-clone --original arch --name archone --auto-clone
Get the clone's mac address:
virsh dumpxml archone | grep mac
Now assign the clone a dhcp reservation:
virsh net-edit default
Notice that I tighten up the dhcp range, and add a reservation outside the new dhcp range.
<network connections='1'> <name>default</name> <uuid>8013c9a5-606f-48a0-a3ec-1cf097e76fb1</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:ef:cb:d2'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <!-- previous dhcp range <range start='192.168.122.2' end='192.168.122.254'/> --> <!-- begin new lines --> <range start='192.168.122.50' end='192.168.122.150'/> <host mac='52:54:00:cd:7d:7f' name='archone' ip='192.168.122.25'/> <!-- end new lines --> </dhcp> </ip> </network>
Restart Default Network
virsh net-destroy default
virsh net-start default