Giving lightbulbs a MAC address was a mistake that Iām living with.
Iām literally unscrewing lightbulbs to renew their DHCP lease
@dbushell.com - Bluesky
Instead of enjoying the bank holiday Monday I updated my homelab software. I was āinspiredā by the Copy Fail Linux bug to run full distro upgrades. This is my self-hosted update for Spring 2026 (rough documentation to give future me a chance).
Mondayās fun risked a week of pain. I do have backups but restoring them on a broken LAN is tricky. I have an ISP provided wifi router to dust off in an emergency. Along with an absurdly long 15 metre HDMI cable I do not care to unravel. My winter update added a hardware fallback but that too requires careful rejigging.
Debian Trixie
I have Proxmox hosts, virtual machines, and Raspberry DietPis. They were all on Debian 12 (Bookworm) with a kernel potentially susceptible to the bug.
Minimal Debian installs are perfect because I run everything in Docker anyway. Data volumes are easy to backup or network mount. I can change host at will for any service. Debian is just sensible, well documented no-fuss Linux.
Ubuntu is not for me
I used to run āminimalā Ubuntu server. Following 24.04 I found myself debloating most of the Ubuntu part (i.e. snaps). It sounds like the new coreutils are a CVE party. Glad I escaped before that drama! As it happens, this weekās Linux Unplugged episode had Canonicalās VP of Engineering spewing embarrassing AI platitudes. āUbuntu is not for youā was the only thing said worth remembering.
Virtual machine upgrades
I updated most of my VMs first because theyāre easy to restore if anything fails. I followed Lubos Rendekās guide. Start with a full package update and then change the package sources before running another step-by-step upgrade.
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
find /etc/apt/sources.list.d -name "*.list" -exec sed -i 's/bookworm/trixie/g' {} \;bookworm with trixie in the apt sources.The only non-Debian sources I have are Docker and Tailscale. Yes that means I run Docker inside Proxmox VMs ā and you canāt stop me! Thatās not even my worse crimeā¦
After the Trixie upgrade I found VMs were failing to obtain a LAN IP address. The virtual network device had been renamed from enp6s18 to ens18. I edited interfaces and just changed the reference.
# /etc/network/interfaces
allow-hotplug ens18
iface ens18 inet dhcpThere is surely a better/more predictable fix but this was the quickest. The same name was used across all VMs so I guess 18 is the magic number.
Everything has been stable so far. If issues arise Iāll just nuke and pave from a Debian 13 ISO. Docker config and volumes are backed up independently of the VM images.
DietPi upgrades
DietPi has a long Trixie upgrade post I didnāt read. I just curled to bash:
sudo bash -c "$(curl -sSf 'https://raw.githubusercontent.com/MichaIng/DietPi/dev/.meta/dietpi-trixie-upgrade')"I gave the script a cursory glance before hitting enter. I have a Pi 4 running failover DNS and a Pi 5 running my public Forgejo instance. DietPi is ideal because of the tiny footprint; I run Docker here too. Raspberry Pi still hasnāt merged upstream Copy Fail fixes. Iām already in trouble if this bug can be exploited but I did the temporary fix out of caution.
Proxmox 8 to 9
I wasnāt going to bother with Proxmox 9 but after a GUI update I was informed version 8 āend of lifeā was August 2026. That is soon! I followed the official upgrade guide on my Mini-ITX server. Proxmox has a tool to check compatibility.
pve8to9 --fullI saw no red lights so I stopped all VMs, updated package sources to Trixie, and ran the upgrade. It is critical to run pve8to9 again before rebooting. I ran into the systemd-boot issue. Apparently if this is not removed the system fails to boot. If my particular box fails to boot Iām in big trouble because I broke video output and have yet to fix it.
The worst crime
I have another Proxmox machine running virtualised OPNsense for my home router. I canāt stop the OPNsense VM and upgrade the host to Proxmox 9 because the host would have no network access. I had two options:
- Use my failover VM
- YOLO it live
I specifically set up option 1 for such a purpose. I went with option 2.
I figured any software running in memory is still alive until I reboot, right? I didnāt question whether Proxmox would kill any processes itself (it didnāt). The update was suspiciously fast. I ran pve8to9 again and saw a lot of yellow warnings. Yikes. Eventually I noticed Iād failed to update some sources to Trixie and Iād installed a franken-distro.
After fixing mistakes all I could do was reboot and pray for an agonising two minutes.
Request timeout for icmp_seq 107
ping: sendto: Host is down
Request timeout for icmp_seq 108
ping: sendto: Host is down
Request timeout for icmp_seq 109
ping: sendto: Host is down
64 bytes from 192.168.1.1: icmp_seq=110 ttl=64 time=6.039 ms
64 bytes from 192.168.1.1: icmp_seq=111 ttl=64 time=4.834 ms
OPNsense upgrade
OPNsense is the only non-Debian operating system in my homelab. I manage it entirely via the web GUI. The 26.1 update had quite a few significant changes. My DHCP setup was considered ālegacyā and my firewall rules required a manual migration.
Despite dumbening my smart home my lightbulbs still demand a WiFi connection. I program them myself to avoid Home Assistant and proprietary apps. Turns out I hard-coded IP addresses (discovery protocols are a joke.) Despite having dynamic IPs they remained stable until the OPNsense 26.1 DHCP update.
I had no easy way to identify each light. Why would they name themselves anything useful? Thatās how I ended up unscrewing the bulbs one by one to see which MAC address fell off the network. I gave them static IPs on a VLAN for future me to appreciate.
And with that, my home network is up to date!
Edit: you know what maybe I should follow this advice: āMaybe you shouldnāt install new software for a bit.ā
Thanks for reading! Follow me on Mastodon and Bluesky. Subscribe to my Blog and Notes or Combined feeds.