linux – “biosdevname”如何真正起作用?

前端之家收集整理的这篇文章主要介绍了linux – “biosdevname”如何真正起作用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道 Linux中“biosdevname”功能的目的,但我不知道如何
确切地说它有效.

我用Ubuntu 14.04和Ubuntu 14.10(都是64位服务器版本)进行了测试
看起来他们默认启用它 – 在系统启动后立即启用它
网络接口有一个名称,如p4p1而不是eth0,没有自定义
需要.据我了解,为了启用biosdevname,两者兼而有之
必须满足这两个条件:

>必须将引导选项biosdevname = 1传递给内核
>必须安装biosdevname包

正如我已经提到的,Ubuntu 14.04和14.10似乎都提供了biosdevname
作为默认功能:它们已经安装了biosdevname包,我
也不需要修改grub.cfg – GRUB_CMDLINE_LINUX_DEFAULT没有
参数和我的网络接口仍然有一个BIOS名称(p * p *)而不是
内核名称(eth *.)

后来我想恢复旧式设备命名,那就是
有趣的部分开始.我决定尝试禁用时尝试一下
biosdevname功能.因为它需要biosdevname包才能工作(或者
所以我在这里和那里阅读),我假设删除它就足以禁用了
功能,所以我输入:

sudo apt-get purge biosdevname

令我惊讶的是,重新启动后我的网络接口仍然是p4p1,所以
即使biosdevname包已经生效,biosdevname显然仍然有效
歼灭.

下一步,我在/ etc / network / interfaces中应用了适当的更改
为了恢复我的网络接口的旧名称(删除了p4p1的条目
添加了eth0的条目.结果,在另一次重启后,ifconfig
没有报告eth0和p4p1这是操作系统仍然存在的另一个证据
了解BIOS名称而不是内核名称.

事实证明,我还必须明确地将GRUB条目更改为
GRUB_CMDLINE_LINUX_DEFAULT = biosdevname = 0并更新GRUB以获得预期的结果
结果(禁用了biosdevname,恢复了网络接口的旧名称).

我的问题是:如果没有biosdevname包,biosdevname怎么办?是
毕竟不需要吗?如果是这样,究竟是什么提供了biosdevname
功能和它是如何工作的?

@H_403_45@解决方法
即使在卸载软件包之后,biosdevname仍然让你烦恼的原因是它自己也安装在initrd的“初始ramdisk”文件中.

卸载时,删除了/usr/share / initramfs-tools / hooks / biosdevname,但是包中没有postrm脚本,因此不执行update-initramfs,并且/ boot / initrd …文件中仍然存在biosdevname用于系统启动的第一阶段.

你可以像这样完全摆脱它:

$sudo update-initramfs -u
原文链接:https://www.f2er.com/linux/393252.html

猜你在找的Linux相关文章