Headless. Fast. Surgical. KVM is a battle-tested tool in the Architect's armory.
https://silentarchitect.org/2026/03/architects-kvm-manual.html
#kvm #qemu #hypervisor #virtualization #libvirt #virtinstall #architect
Headless. Fast. Surgical. KVM is a battle-tested tool in the Architect's armory.
https://silentarchitect.org/2026/03/architects-kvm-manual.html
#kvm #qemu #hypervisor #virtualization #libvirt #virtinstall #architect
The Backup Post Ate My ISO Machine — Part 13 of Building a Resilient Home Server Series
A bit late in the day but here part 13. The Windows dev machine died, so the ISO builder moved to the server — QEMU/KVM VM with virtiofs so builds land directly on the network share. The usual parade of things went wrong along the way.
https://blog.ppb1701.com/iso-builder-vm-on-nixos2-part-13-of-building-a-resilient-home-server-series
#NixOS #homelab #selfhosted #libvirt #QEMU #virtiofs #Samba #linux #homeserver #blog
Apparently there is no way to run dhcpd that binds to individual interface and #libvirt network on the same host. The solutions are:
1. Find a dhcpd that binds to *:67 (and then only responds to configured interfaces/networks), or
2. Manage the libvirt bridge network interface manually, or
3. Hack libvirt with a custom patch, or
4. Create a separate interface with different dhcpd port, and bind the dhcpd to that interface and prot. Forward dhcp packets from the desired interface to this custom interface and port.
I found this out the hard way when I planned to replace isc-dhcp-server with kea-dhcp4-server.
Apparently the kernel errors out if different applications want to bind to UDP *:port and UDP interface:port. Multiple apps binding to UDP *:port is fine and that is why isc-dhcp-server works with libvirt.
Two apps binding to different UDP interface0:port and interface1:port are of course ok, but unfortunately libvirt generates the bridge dnsmasq config in a way that doesn't allow specifying the specific interface for binding or excluded interfaces: https://github.com/libvirt/libvirt/blob/3f3cb3ab51740c30f1016c4fe657c48a14cc8462/src/network/bridge_driver.c#L1144
Episode 7 of Dark Blue Weekly released
https://darkblueraven.com/sites/news/dbw-e7.php
#darkblueweekly #darkblueproject #opensource #freesoftware #linux #linuxfromscratch #grapheneos #budgiedesktop #cinnamondesktop #linuxmint #libvirt
Just discovered libvirt ssh proxy with is working with systemd-ssh-generator to transfer ssh through vsock. So you can simply
$ virt-install --vsock cid.auto=yes --cloud-init user-data...
And then ssh with
$ ssh qemu:system/myvm
no need to predict or discover the IP address (or even to have a network interface)
In my (short) dad time this morning, I've tried to install mgmt [1] to run a distributed hello world on my main machine running on Ubuntu LTS. The built-in binaries depend on augeas which was easy to fix. But also libvirt which is surprisingly old on Ubuntu compared to Debian (latest). I tried to build it myself but I couldn't install nex (the lexer). I then built the binary using Docker thanks to the quick start guide.
I first started to run mgmt in standalone mode. It's nice to see etcd embedded in the binary (at least for testing). Then I tried to deploy multi mgmt nodes with a standalone etcd using docker-compose. I've lost a lot of time trying to override the command because I didn't remember the expected syntax.
I was trying to make etcd listen to all interfaces so mgmt could connect when my daughter showed up.
[1] https://github.com/purpleidea/mgmt (@purpleidea)
#mgmt #homelab #selfhosting #etcd #docker #libvirt #ubuntu #debian
Updated: Resolve Libvirt Error Unable to Find EFI Firmware
- Fix redirect links
https://www.adamsdesk.com/posts/resolve-libvirt-error-unable-find-efi-firmware/