ubuntu18 开机无法自动加载modules问题解决
问题描述
在一台ubuntu18.04虚拟机上添加了intel 6300esb 硬件看门狗计时器,开机后 lsmod 发现未加载 i6300esb module。
按照网上的教程,将该模块配置进 /etc/modules 文件(或者在/etc/modules-load.d 目录下添加文件,写入模块名)来开机无条件加载i6300esb模块。
重启后发现还是无法自动加载该模块。
解决方案
搜索发现/etc/modules 文件或/etc/modules-load.d 目录下的文件是 systemd-modules-load 服务的配置文件。检查该服务的状态:
root@wd-u18:~# systemctl status systemd-modules-load
* systemd-modules-load.service - Load Kernel Modules
Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static; ven
Active: active (exited) since Fri 2021-04-09 15:25:45 CST; 9min ago
Docs: man:systemd-modules-load.service(8)
man:modules-load.d(5)
Process: 249 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=
Main PID: 249 (code=exited, status=0/SUCCESS)
Apr 09 15:25:45 wd-u18 systemd-modules-load[249]: Inserted module 'nf_conntrack'
Apr 09 15:25:45 wd-u18 systemd-modules-load[249]: Inserted module 'pci_stub'
Apr 09 15:25:45 wd-u18 systemd-modules-load[249]: Inserted module 'vfio'
Apr 09 15:25:45 wd-u18 systemd-modules-load[249]: Inserted module 'vfio_pci'
Apr 09 15:25:45 wd-u18 systemd-modules-load[249]: Inserted module 'kvm'
Apr 09 15:25:45 wd-u18 systemd-modules-load[249]: Inserted module 'kvm_intel'
Apr 09 15:25:45 wd-u18 systemd-modules-load[249]: Module 'i6300esb' is blacklist
Apr 09 15:25:45 wd-u18 systemd[1]: Started Load Kernel Modules.
Warning: Journal has been rotated since unit was started. Log output is incomple
发现服务已经尝试加载该模块了,但是该模块在blacklist中,导致加载失败。
进入/etc/modprobe.d目录查看blacklist配置,未发现i6300esb在黑名单中。
全局grep -r blacklist /,发现*/lib/modprobe.d/blacklist_linux_4.15.0-96-generic.conf:blacklist i6300esb**文件设置了黑名单。
修改该文件 /lib/modprobe.d/blacklist_linux_`uname -r`.conf,将其中的对应行删除,之后重启虚机,开机后即可自动加载该模块了。
总结:
想要配置某模块未开机自启动,不仅要在/etc/modules中添加配置该模块,还要检查该模块是否在禁止加载的黑名单中。
参考:
http://www.jinbuguo.com/systemd/systemd-modules-load.service.html#
http://www.jinbuguo.com/systemd/modules-load.d.html#