首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖modprobe.d黑名单

覆盖modprobe.d黑名单
EN

Unix & Linux用户
提问于 2018-06-21 16:10:58
回答 2查看 3.6K关注 0票数 6

我正在使用Ubuntu 18.04。我试图在引导时加载一个模块;所讨论的模块是iTCO_wdt。关于将内核模块列入黑名单有很多问题,但我正在尝试将一个模块白名单。

下面是我尝试在引导时加载模块的步骤:

  1. iTCO_wdt添加到/etc/模块(与/etc/模块有符号链接-load.d/Modes.conf)
  2. 注释掉/etc/modprobe.d/黑名单中的blacklist iTCO_wdt行-Watdog.conf

我认为这就足够了,但是syslog仍然显示模块被列入了黑名单:

代码语言:javascript
复制
systemd-modules-load[331]: Module 'iTCO_wdt' is blacklisted

经过一些调查后,我发现该模块还被列入了安装在/lib/modprobe.d中的几个维护人员安装的黑名单文件中:

代码语言:javascript
复制
$ grep -l 'blacklist iTCO_wdt' /lib/modprobe.d/*
/lib/modprobe.d/blacklist_linux_4.15.0-20-generic.conf
/lib/modprobe.d/blacklist_linux_4.15.0-23-generic.conf

我发现每个文件确实影响了mod探测行为,这是令人惊讶的,因为当linux_4.15.0.23-Generic.conf文件是当前内核时,我不会期望linux_4.15.0.20-generic.conf文件影响机器的行为。

在注释掉每个文件中的blacklist iTCO_wdt行并重新启动后,模块将自动加载,这是所需的行为。

因此,在我看来,即使/lib/modprobe.d文件将模块列入黑名单,也有几种方法可以加载模块:

  • 手动注释掉每个文件中的blacklist iTCO_wdt
  • 在启动时运行的脚本中加载模块

问题是将来的更新可能会安装新的/lib/modprobe.d黑名单文件,这可能会重新列入黑名单iTCO_wdt。有了这个考虑,我的最佳选择似乎是最后一个,虽然我真的不喜欢它,因为它依赖于我自己的脚本,而不是内置的模块加载系统。

考虑到我不想在每次内核更新之后编辑/lib/modprobe.d文件,在模块加载系统中永久白名单iTCO_wdt模块的最佳方法是什么?

EN

回答 2

Unix & Linux用户

发布于 2019-06-18 08:18:43

我确实遇到了这个问题。我找到的解决方案(通过读取http://www.sat.dundee.ac.uk/psc/watchdog/Linux-Watchdog.html上的看门狗文档)是将内核模块(iTCO_wdt)的名称编辑到/etc/default/ was中。因此,改变行文:

Watchdog_module=“无”

watchdog_module="iTCO_wdt“

不需要更改任何黑名单文件或其他任何东西-它只是有效的(在薄荷19.1)!

正如在文档中所指出的,这绕过了OP所描述的行为,以及系统d中似乎被认为是一个bug的问题。

票数 1
EN

Unix & Linux用户

发布于 2018-11-19 09:11:32

实际上,initrd (ramdisk)也阻止了这一点。您还需要更新ramdisk中的黑名单conf:

$ sudo更新-initramfs -u

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/451143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档