This is not a full solution. In Xenial this renaming works even if initramfs has *not* been updated and there is no 70-persistent-net.rules file in the initial ramdisk. I'm still figuring out why this is, but it means that even if my patch were applied, there would be a regression in bionic vs xenial.
Here's a snippet from dmesg showing the same device being renamed twice, this is a xenial guest. It shows the device going from the kernel name (eth0) to the udev slot based name (ens16), to the name specified in the udev rules file that is *not* present in initrd. ubuntu@xt2:~$ dmesg|grep renamed [ 2.428015] virtio_net virtio3 ens16: renamed from eth0 [ 5.317990] virtio_net virtio3 ens3: renamed from ens16 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1770082 Title: systemd-networkd not renaming devices on boot To manage notifications about this bug go to: https://bugs.launchpad.net/netplan/+bug/1770082/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs