我决定检查一下我的以太网设备的名称,但是与其他发行版相反,Debian似乎并未激活此更改(或正在阻止它进行更改),
- 现在保留旧的持久性网络接口命名方案,并在内核命令行上通过net.ifnames = 1进行新的选择加入。
问题是我必须编辑grub内核行,对于通过修改file可以禁用的某些操作来说似乎有些过头了。还有另一种方法吗?
我决定检查一下我的以太网设备的名称,但是与其他发行版相反,Debian似乎并未激活此更改(或正在阻止它进行更改),
- 现在保留旧的持久性网络接口命名方案,并在内核命令行上通过net.ifnames = 1进行新的选择加入。
问题是我必须编辑grub内核行,对于通过修改file可以禁用的某些操作来说似乎有些过头了。还有另一种方法吗?
Answers:
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.
这来自debian-devel列表中的一个提案。在用户迁移之前,使用旧命名的系统不会重命名。阅读README.Debian以获得迁移指南。
可以通过以下方式预测新名称:
sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_
eth0
设备的当前名称在哪里。
我认为您是在谈论sid或jessie。对于狂奔,您可能想尝试v204的backport。
这里可能存在一些误解:从此处的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
完全摆脱了检查,因此您的问题可能需要在不久的将来重新解决。
net.ifname=1
参数,但是在Linux Mint上未启用此功能。已知哪些Linux发行版支持此功能?
Ubuntu 15.10使用biosdevname
不提供可预测的网络接口名称。即使删除了它(apt-get remove biosdevname)并编辑了grub(GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"
)和持久性规则,您仍然不会得到可预测的网络接口。
主要原因似乎是向后兼容。我刚刚用2个移动宽带USB设备对其进行了测试,并且每次启动时网络接口名称都不一致(例如,第一个接口usb0,第二个usb1以及相反的名称)。主要原因似乎是向后兼容。
在启动板上有一些错误(例如this)打开,但是简短的答案是,如果您正在寻找可预测的网络接口名称,则应该寻找其他发行版。