Переименование сетевых устройств virtio в Ubuntu 16.04 не работает

Я пытаюсь переименовать некоторые устройства virtio ethernet на виртуальной машине Ubuntu 16.04. Я успешно делал это много раз на не-Ubuntu системах с физическими интерфейсами и старых системах Ubuntu. Тем не менее, несмотря на то, что следование совету переименования сетевого интерфейса в Ubuntu 16.04 с systemd не удается, а постоянные имена сетевых интерфейсов и kvm по- прежнему не переименовываются. Это на виртуальной машине с открытым стеком, но это не должно иметь большого значения.

Я попытался использовать Udev (мой нормальный подход):

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="fa:16:3e:bf:be:d0", NAME="enet"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="fa:16:3e:64:fb:74", NAME="snet"

Я попытался использовать файлы systemd.link (с и без 99-default.link символической ссылки на /dev/null):

[Match]
MACAddress=fa:16:3e:bf:be:d0

[Link]
Name=enet

а также

[Match]
MACAddress=fa:16:3e:64:fb:74

[Link]
Name=snet

Я пытался с udev и systemd ссылками. Я конечно бегаю sudo update-initramfs -u

И systemd, и udev признают новое имя в некоторой степени.

systemctl говорит:

  sys-devices-pci0000:00-0000:00:03.0-virtio0-net-ens3.device       loaded active plugged   Virtio network device
  sys-devices-pci0000:00-0000:00:03.0-virtio0-net-enet.device       loaded active plugged   Virtio network device
  sys-devices-pci0000:00-0000:00:04.0-virtio1-net-ens4.device       loaded active plugged   Virtio network device
  sys-devices-pci0000:00-0000:00:04.0-virtio1-net-snet.device       loaded active plugged   Virtio network device

udevadm info /sys/class/net/ens3

P: /devices/pci0000:00/0000:00:03.0/virtio0/net/ens3
E: DEVPATH=/devices/pci0000:00/0000:00:03.0/virtio0/net/ens3
E: ID_BUS=pci
E: ID_MODEL_FROM_DATABASE=Virtio network device
E: ID_MODEL_ID=0x1000
E: ID_NET_DRIVER=virtio_net
E: ID_NET_LINK_FILE=/etc/systemd/network/80-etr-net-names.link
E: ID_NET_NAME_MAC=enxfa163ebfbed0
E: ID_NET_NAME_PATH=enp0s3
E: ID_NET_NAME_SLOT=ens3
E: ID_PATH=virtio-pci-0000:00:03.0
E: ID_PATH_TAG=virtio-pci-0000_00_03_0
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Red Hat, Inc
E: ID_VENDOR_ID=0x1af4
E: IFINDEX=2
E: INTERFACE=ens3
E: SUBSYSTEM=net
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enet /sys/subsystem/net/devices/ens3
E: TAGS=:systemd:
E: USEC_INITIALIZED=1532927

Но каким-то образом устройство поддерживает имя ensX. Я не запускаю NetworkManager

2: ens3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether fa:16:3e:bf:be:d0 brd ff:ff:ff:ff:ff:ff
3: ens4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether fa:16:3e:64:fb:74 brd ff:ff:ff:ff:ff:ff

1 ответ

Возможно, вам повезло, потому что версия Linux Kernel 4.9.9 была выпущена в четверг (9 февраля 2017 г.) с улучшениями Virtio и многих других. Вы можете прочитать об этом здесь ( softpedia.com - ядро ​​Linux 4.9.9, выпущенное со многими обновленными драйверами x86).

Чтобы установить последнюю версию ядра, вы можете следовать инструкциям здесь ( Как обновить ядро ​​до последней основной версии?), Но заменить 4.9.8 на 4.9.9.

Кроме того, есть улучшения для драйверов дисплея Intel i915 и AMDGPU и драйверов Nouveau для карт nVidia. Любой, у кого есть неразрешимые ошибки в этих областях, должен серьезно подумать об установке новой версии ядра Linux.

Другие вопросы по тегам