Geeky post follows. Sane people skip.
So I have installed the Debian/sid on a VM the other day, containing the newest udev (about this later for suspense). Then after a reboot I have noticed that the ethernet wasn't eth0 anymore but somefucking enp0s3, which is great since it's longer, uglier, seem to be varying from machine to machine and absofuckinglytely screwing up every configured stuff around.
First it wasn't obvious. I had a 70-persistent-network.rules leftover, so I have deleted it, and let the reboot regenerate it.
Reboot actually happily ignored to regenerate the file and it has been renamed to garbage again. Ooh-kay, that's pretty suspicious, but the file contain where to generate it.
/lib/udev/write_net_rules (which supposedly creates it) does not exist. Hey, um, someone accidentally screwed up the udev package? Okay, let me see…
And it started there. I went to the Debian package tracker to see where the file has gone. And the tracker said there is no udev in Debian since 2013. WHAT?! Ohhkay, it's clearly there, how it's not there. I try to look for the package binary: it's there. Let me see what is the source package…
Sweet Fucking Jesus!
It is bloody damn fucked systemd!
So what basically happened? The folks behind that infection called systemd created udev, and they have pulled udev into the systemd so-called development. Then they started to play systemd'ish with udev binary, and they have decided that they would like to convert interface names to garbage just because. And to stay on the safe side they removed signs of rule generation scripts (instead of, say, redirecting the admin to the official bullshit page), so it's absofuckinglutly nontrivial to figure out what happened.
So they have removed the persistent rule generator, they have moved the logic into a dozen scattered config (systemd style) and expect people to find a page like I don't know how.
And I have been immediately removing systemd everywhere, so it is not present on the machines, so why the fuck should I look for the problem on the systemd pages? Why, why, because udev is systemd now.
But anyway, the solution is:
ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Or you can create a
with the NAME property a way the systemd page does not describe,
why of course. You go and guess it. Why link the fucking thing on a
page which was created for the people actually suffering from this insolence
and looking for a solution? It would be so wastefully simple.
And it've got my eth0 again.
Fuck systemd. Repeatedly. Till it dies. Then change to the necrophile stage.