我正在尝试重命名 Ubuntu 16.04 VM 上的一些 virtio 以太网设备。我在具有物理接口的非 Ubuntu 系统和较旧的 Ubuntu 系统上多次成功完成此操作。然而,尽管遵循了使用 systemd 在 Ubuntu 16.04 中重命名网络接口失败并看到持久网络接口命名和 kvm它仍然没有被重命名。这是在 openstack VM 上,但这实际上不应该有太大关系。
我曾尝试使用 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 内核版本 4.9.9 刚刚于周四(2017 年 2 月 9 日)发布,改进了维蒂奥等等。您可以在此处阅读相关内容 (softpedia.com - Linux 内核 4.9.9 发布,包含许多更新的 x86 驱动程序)。
要安装最新的内核版本,您可以按照此处的说明进行操作(如何将内核更新到最新的主线版本?),但将 4.9.8 替换为 4.9.9。
另外,Intel i915 和 AMDGPU 显示驱动程序以及 nVidia 卡的 Nouveau 驱动程序也得到了改进。任何在这些方面有无法解决的错误的人都应该认真考虑安装新版 Linux 内核。