如何启用“可预测的网络接口名称”?

Bra*_*iam 12 debian udev systemd

我决定检查一下我的以太网设备最终会使用什么名称,但与其他发行版相反,Debian 似乎没有激活此更改(或者正在阻止它?),

  • 现在保留旧的持久网络接口命名方案,并通过内核命令行上的 net.ifnames=1 选择加入新的命名方案。

问题是我必须编辑 grub 内核行,这对于可以通过修改文件来禁用的东西来说似乎有点过分。还有其他方法吗?

Bra*_*iam 11

Debian 版本 220-7 删除了选择加入的补丁:

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.
Run Code Online (Sandbox Code Playgroud)

这来自debian-devel列表中的一个提议。在用户迁移之前,不会重命名使用旧命名的系统。阅读 README.Debian 以获取迁移指南。

可以使用以下方法预测新名称:

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_
Run Code Online (Sandbox Code Playgroud)

哪里eth0是设备的当前名称。


小智 5

我假设你在谈论 sid 或 jessie。对于喘息,您可能想尝试向后移植 v204

这里可能存在一些误解:从这里的 udev 规则可以看出(对于当前在 sid 中​​的 v208),udev 开发人员明确选择内核 cmdline 作为启用此功能的默认方式。
我看不出有什么本质“矫枉过正”使用它的选择界面,干脆把GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"/etc/default/grub。您是否担心任何特定的副作用?

您提到的答案建议删除文件以禁用它这一事实是一种黑客(至少在 Debian 的情况下),从长远来看是行不通的,因为在 debian 中,这些规则存储在 中/lib/udev/rules.d,即:它们会被覆盖升级(此外,通过有效地删除描述它的文件来禁用功能是有道理的,但启用它是根本不同的,所以我认为这是一个不公平的比较)。

OTOH,如果您有不使用内核 cmdline 的具体原因,您可以报告针对 debian 软件包的错误,并让维护者将这些规则移至/etc/udev/. 然后,您理论上可以在当前的“持久”规则和新的“可预测”规则之间切换。

但仅供参考:查看 209 版的来源,它似乎net.if_names完全摆脱了检查,因此您的问题可能需要在不久的将来重新解决。