目的
目的是将加载的选定模块列入黑名单。
操作系统和软件版本
- 操作系统:-Debian,Ubuntu,薄荷
要求
以root或通过特权访问Ubuntu系统sudo
命令是必需的。
困难
简单
约定
使用说明
可能有时候需要在系统启动期间禁止加载某些模块。在此”how to”中,我们将讨论如何将模块黑名单及其相关性列入黑名单,即在引导期间永久禁止加载模块。
首先,我们需要知道如何列出您的Linux系统当前加载的所有模块:
$ lsmod
....
ehci_hcd 40249 0
usbcore 128741 4 ehci_hcd,ohci_hcd,usbhid
usb_common 12354 1 usbcore
e1000 86156 0
libata 140630 4 libahci,ahci,ata_piix,ata_generic
....
lsmod
该命令列出了所有当前加载的内核模块。以上lsmod
输出已缩短。假设我们要列入黑名单usbcore
模块。在卸载或将任何模块列入黑名单之前,最好先查看其他模块是否依赖于该模块:
(adsbygoogle = window.adsbygoogle || [])。push({});
$ modinfo -F depends usbcore
usb-common
从上面的例子中我们可以看到usb-common
模块取决于usbcore
。要将没有依赖性的模块列入黑名单,请创建一个/etc/modprobe.d/blacklist.conf
(如果不存在)则添加行:
blacklist usbcore
完成后,更新initramfs并重新启动系统:
# update-initramfs -u
# reboot
重新启动后使用lsmod
查看是否存在模块。如果其他模块依赖于要尝试将其列入黑名单的模块,如上述示例,则需要将所有依赖的模块列入黑名单,否则,您已列入黑名单的初始模块仍然会加载。幸运的是,有一个技巧可以将所有模块(包括其依赖项)列入黑名单。
如果由于某些原因无法将模块及其所有依赖项列入黑名单,请使该模块无法加载,从而导致所有依赖模块停止加载。将以下行添加到您的/etc/modprobe.d/blacklist.conf
完全列入黑名单usbcore
包括其所有相关模块:
install usbcore /bin/true
更新initramfs并重新启动:
# update-initramfs -u
为了完整起见,请注意,为每个列入黑名单的模块创建一个单独的模块配置文件是一个好习惯。例如,如果您希望将模块列入黑名单e1000
比创建单独/etc/modprobe.d/e1000.conf
文件。