TL;DR — if you’re in the same situation where your sole network interface fails to configure itself after pulling a Wi-Fi card out of your system. (As root.) systemd-machine-id-setup && systemctl restart systemd-networkd. You’re welcome.
Just some background, there’s this mini PC I picked up recently — an HP ProDesk 405 G4 — that serves my fiancée and I as a way to quickly spin up a Minecraft server or two for the inevitable two-week phases we all seem to go through.
It was kind of rough to start, I just chucked in a 512GB NVMe drive I had sitting around that had served as a ThinkPad’s OS drive in a past life to replace the flimsy (and worn out) 128GB SATA SSD that the recycler shipped in the damn thing. Turned out I hadn’t wiped the drive and the installation of Windows on it was insisting on keeping me within its grasp. Not a big deal though, just some extra time wasted. I had also foregone pulling the (*checks notes*) Intel 9260NGW Wi-Fi card out of the E-key slot on the motherboard, because well I could just do that later with no problems right? Right!?
Fast-forward to yesterday, after I got my totally-unnecessary-but-still-for-peace-of-mind NVMe heatsink dropped off by Amazon I decided to go dig into the system and replace that well-worn drive with a fresh (to me, it was new but open box) 1TB one. That went in without any issues, the heatsink even had enough clearance under the caddy meant for the SATA drive. I had also taken this opportunity to pull the Wi-Fi card. Clonezilla did the job just fine, as there were only ~30-40GB used up on the source drive so it only took a few minutes. Then I expanded the partition to use the entire drive, after which it rebooted back into the Ubuntu Server (yes go ahead, point and laugh) install no problem.
First thing I did was load up btop, for no particular reason outside of it showing me the disks the system can see alongside the capacities. Everything looked good, all was good, however I did notice at the time that the network graph was only showing the loop back address. Riding off the high of the successful drive change, I stupidly assumed that all was well. Then I tried to SSH into it from my main system.
The usual local network address? Didn’t work anymore. Ok! Maybe it just got a different IP address now… Ran a LAN scan using the Network Analyzer app I have on my phone, tried SSHing to addresses that I didn’t recognize, aaaand nothing. Maybe the Ethernet cable isn’t seated properly? Nope! Not that either.
At this point I’m panicking because I have NO idea what’s wrong. I connect the PC back to my monitor, logged in and ran ifconfig. eno1 seems to be up, however it has no IP address. I start searching on my phone for answers. An old askubuntu page suggests /etc/network/interfaces, guess what! It doesn’t even use that anymore! Netplan? Nope! All systemd-networkd. Ok! We’ll just try making a new config file for the interface by copying one of the example ones. Nope! That didn’t work either! What does networkctl say about eno1? Setup FAILED!? Checking logs for systemd-networkd? eno1: Failed to configure DHCPv4 client: No such file or directory. Fucking wonderful.
After a lot of metaphorical bashing my head into the wall trying different things from different search results I happen to stumble upon a Reddit thread (which has thankfully been archived, and again by myself) from 3(!) years ago where someone had the exact same problem. The top comment has someone replying that it had worked for them, so I just had to try it myself.
Lo and behold:

Two commands! All it took was two goddamned commands! Two commands after an entire hour of throwing things at the wall and hoping they magically solve my issue.
After some digging on my part, and some brief skimming through a page on /etc/machine-id over at the Debian wiki of all places. I’ve come to the conclusion that the string in the file didn’t match the PC’s new hardware ID which in turn was a consequence of the Wi-Fi card pull, which makes systemd-networkd shit itself for reasons still unknown to me. In hindsight maybe checking dmesg’s output could’ve also nudged me into this direction, but it is far too late for that now.
…and now the fix for this is here on some random personal site that no one reads instead of Reddit!