微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 覆盖modprobe.d黑名单

我使用的是Ubuntu 18.04.我正试图在启动时加载模块;有问题的模块是iTCO_wdt.有关将内核模块列入黑名单的问题很多,但我试图将其列入白名单.

以下是我尝试在启动时加载模块的步骤:

>将iTCO_wdt添加到/ etc / modules(符号链接到/etc/modules-load.d/modules.conf)
>在/etc/modprobe.d/blacklist-watchdog.conf中评论黑名单iTCO_wdt一行

我认为这已经足够了,但是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

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

在每个文件中注释掉黑名单iTCO_wdt行并重新启动后,模块会自动加载,这是所需的行为.

所以,正如我所看到的,即使它被/lib/modprobe.d文件列入黑名单,我也可以通过几种方式加载模块:

>手动注释掉每个文件中的黑名单iTCO_wdt行
>在我自己的脚本中加载模块,该脚本在启动时运行

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

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

解决方法:

实际上它的initrd(ramdisk)也阻止了它.您还需要更新ramdisk中的黑名单conf:

$sudo update-initramfs -u

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐