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
标签:linux,systemd,kernel-modules,modprobe 来源: https://codeday.me/bug/20190815/1661650.html