我正在使用Ubuntu 18.04。我试图在引导时加载一个模块;所讨论的模块是iTCO_wdt。关于将内核模块列入黑名单有很多问题,但我正在尝试将一个模块白名单。
下面是我尝试在引导时加载模块的步骤:
iTCO_wdt添加到/etc/模块(与/etc/模块有符号链接-load.d/Modes.conf)blacklist iTCO_wdt行-Watdog.conf我认为这就足够了,但是syslog仍然显示模块被列入了黑名单:
systemd-modules-load[331]: Module 'iTCO_wdt' is blacklisted经过一些调查后,我发现该模块还被列入了安装在/lib/modprobe.d中的几个维护人员安装的黑名单文件中:
$ 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模块的最佳方法是什么?
发布于 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的问题。
发布于 2018-11-19 09:11:32
实际上,initrd (ramdisk)也阻止了这一点。您还需要更新ramdisk中的黑名单conf:
$ sudo更新-initramfs -u
https://unix.stackexchange.com/questions/451143
复制相似问题