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

The Backup Post Ate My ISO Machine — Part 13 of Building a Resilient Home Server Series - ByteHaven - Where I ramble about bytes

— Part 13 of Building a Resilient Home Server Series Where We Left Off Part 12 ended on a note of cautious optimism — Windows machine redone, Syncthing certs...

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

To migrate #FreeBSD guest VMs from #Hyper-V to #libvirt/#KVM:
* Convert to .qcow2 from .vhdx at host, using #Cloudbase.it #qemu-img.exe.
On import:
* Choose FreeBSD 14.2 as OS.
* Choose Q35 as chipset.
* Choose BIOS.
* Import disk image as #VirtIO disk; change to SCSI.
* Add missing virtio-scsi controller.
* Apply "stateless" #EFI <os> from libvirt docs, to enable EFI non-secure boot without XML schema errors.
* Boot the FreeBSD guest.
* Edit /etc/rc.conf to use #vtnet(4), not hn(4).
Dark Blue Weekly - Episode 7

@bms48 what's the breakage?

#libvirt #FreeBSD

One Open-source Project Daily

Yosild is a single shell script that builds a full, minimal Linux distribution based on BusyBox.

https://github.com/jaromaz/yosild

#1ospd #opensource #busybox #cli #debian #distro #hyperv #kernelcompilation #kvm #libvirt #linux #linuxdistribution #operatingsystem #shell #terminal #ubuntu #virtualbox

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)

#linux #libvirt

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

Commits · purpleidea/mgmt

Next generation distributed, event-driven, parallel config management! - Commits · purpleidea/mgmt

GitHub
Resolve Libvirt Error Unable to Find EFI Firmware

A step by step guide on how to fix the Libvirt Error Unable to Find EFI Firmware by updating the paths in the virtual machine’s configuration.

Adamsdesk

I just caught Reddit just spreading the wrong-ass information. People are saying virt-manager is faster than GNOME's Boxes app. They are literally based on the same backend, what the fuck.

#Linux #Libvirt