На сервере Ubuntu 18.04 я не смог переименовать сетевые интерфейсы с помощью проверенного метода управления конфигурацией. systemd-networkd
конфигурация работает на всех остальных серверах.
Единственная разница, которую я вижу между серверами, изначально настроенными с помощью управления конфигурацией, и этой частично управляемой вручную машиной заключается в том, что сервер Ubuntu был обновлен по крайней мере с 14.04, может быть, даже с 12.04.
Расследование initrd
и при сравнении с работающим сервером при обновлении Ubuntu появились два очевидных отличия:
/lib/udev/rules.d/71-biosdevname.rules
Это старый пережиток переименования сетевых интерфейсов в Ubuntu. Его нужно удалить.
/etc/udev/rules.d/80-net-setup-link.rules
Это была установка слежки /lib/udev/rules.d/80-net-setup-link.rules
, который (среди прочего) также применяет конфигурацию из systemd-networkd
. Он содержит сообщение, указывающее на некоторую неверно интерпретируемую настройку как виртуальную машину (на самом деле это сервер с голым железом):
# This machine is most likely a virtualized guest, where the old persistent
# network interface mechanism (75-persistent-net-generator.rules) did not work.
# This file disables /lib/systemd/network/99-default.link to avoid
# changing network interface names on upgrade. Please read
# /usr/share/doc/udev/README.Debian.gz about how to migrate to the currently
# supported mechanism.
Этот файл также необходимо удалить.
Заключительный update-initramfs -u && reboot
приводит к правильному переименованию сетевых интерфейсов.