在 Debian 9 中迁移 NIC 名称

在 Debian 9 中迁移 NIC 名称

在将服务器从 Debian 9 升级到 10 之前,我尝试按照建议将接口名称从旧命名 ( eth0, eth1) 迁移到新命名,即enp1s0, enp2s0。我找到的所有指南都告诉我:

  • 发现新旧名称(完成);
  • 删除或注释/etc/udev/rules.d/70-persistent-net.rules, 据说这是在 Debian 9 中保持旧名称有效的唯一方法;
  • 编辑/etc文件,将新名称替换为旧名称,然后重新启动,祈祷。

问题是/etc/udev/rules.d/70-persistent-net.rules不存在。零。所以服务器应该已经使用新名字。在 Debian 9 中,udev 应该自行应用它们。

我在某个地方看到一个建议,检查表单中是否有内核命令行参数net.ifnames=0。但没有。

我不明白。任何人都可以阐明 udev NIC 命名过程吗?我应该检查什么 udev 规则?

答案1

深入研究 udev 的奥秘,我发现以下命令允许调试网络名称分配:(请参阅https://manpages.debian.org/testing/udev/systemd.link.5.en.html

sudo SYSTEMD_LOG_LEVEL=debug udevadm test-builtin net_setup_link /sys/class/net/eth0

calling: test-builtin
...
Load module index
Found container virtualization none
timestamp of '/etc/systemd/network' changed
timestamp of '/lib/systemd/network' changed
Skipping overridden file: /lib/systemd/network/99-default.link.
Parsed configuration file /etc/systemd/network/99-default.link
Created link configuration context.
ID_NET_DRIVER=e1000e
Config file /etc/systemd/network/99-default.link applies to device eth1
ID_NET_LINK_FILE=/etc/systemd/network/99-default.link
Unload module index
Unloaded link configuration context.

其中/etc/systemd/network/99-default.link仅包含注释,以便跳过中提供的策略,/lib/systemd/network/99-default.link从而允许内核提供的名称保持有效。删除 /etc 中的文件将恢复新的命名。

相关内容