如何在 Ubuntu/Debian Linux 上将模块列入黑名单如何在 Ubuntu/Debian Linux 上将模块列入黑名单如何在 Ubuntu/Debian Linux 上将模块列入黑名单如何在 Ubuntu/Debian Linux 上将模块列入黑名单
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

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

发表 admin at 2025年2月28日
类别
  • 未分类
标签

有时您可能需要在 Linux 系统引导期间禁用某些内核模块的加载。在本指南中,我们将讨论在 Ubuntu 和任何其他基于 Debian 的发行版上将模块(包括其依赖项)列入黑名单的几种不同方法。这将有效地永久禁止模块在启动期间加载。

在本教程中您将学习:

  • 如何在基于 Ubuntu/Debian 的 Linux 发行版上将内核模块列入黑名单

将 Ubuntu Linux 上的内核模块列入黑名单

禁止加载黑名单模块

请按照以下步骤操作,了解如何将内核模块列入黑名单,以免在系统上加载。

  1. 让我们首先列出 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 输出已被缩短。

  2. 假设我们要将 usbcore 模块列入黑名单。在卸载任何模块或将其列入黑名单之前,最好先看看还有哪些其他模块依赖于该模块:

    
    $ modinfo -F depends usbcore
    usb-common
    
  3. 从上面的输出我们可以看到usb-common模块依赖于usbcore。要将没有依赖项的模块列入黑名单,我们将创建一个 /etc/modprobe.d/blacklist.conf (如果尚不存在)文件并向其中添加以下行:

    
    blacklist usbcore
    
  4. 完成后,更新 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 和其他基于 Debian 的 Linux 系统中的内核模块列入黑名单。当您需要在启动时暂时或永久阻止模块加载时,这非常有用。如果您需要允许模块再次加载,则可以通过删除文件来简单地恢复更改。这些指令允许模块保留在您的系统上,同时只是阻止它自动加载。

©2015-2025 Norria support@norria.com