当前位置: 首页>>技术教程>>正文


如何在Ubuntu/Debian Linux上将模块列入黑名单

, ,

目的

目的是将加载的选定模块列入黑名单。

操作系统和软件版本

  • 操作系统:-Debian,Ubuntu,薄荷

要求

以root或通过特权访问Ubuntu系统sudo命令是必需的。

困难

简单

约定

  • -要求给出linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令
  • $-给linux命令以普通非特权用户身份执行

使用说明

可能有时候需要在系统启动期间禁止加载某些模块。在此”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文件。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9930.html,未经允许,请勿转载。