【问题标题】:Differences between modprobe.blacklist and rd.driver.blacklist in Linux kernel parametersLinux内核参数中modprobe.blacklist和rd.driver.blacklist的区别
【发布时间】:2020-11-16 02:17:13
【问题描述】:

上下文

我主要看到了三种通过向内核附加参数来将驱动程序模块列入黑名单的方法:(i) modprobe.blacklist=driver_name, (ii) rd.driver.blacklist=driver_name , 或 (iii) 都在最后。这通常通过将这些参数附加到/etc/default/grubGRUB_CMDLINE_LINUX 变量来完成。

在实践中,我无法找出它们之间的真正区别。但我想它也可能会随着你的环境而改变。有疑问,我一直在同时使用这两种方法,并且它适用于我的 Fedora 31。

我的研究

rd.driver.blacklist

man dracut.cmdline:

rd.driver.blacklist=<drivername>[,<drivername>,...]
           do not load kernel module <drivername>. This parameter can be
           specified multiple times.

modprobe.blacklist

man modprobe:

(...)。 modprobe 还将使用在内核命令行中以 .

总结问题

那么,modprobe.blacklistrd.driver.blacklist 在 Linux 中将驱动程序列入黑名单有什么区别?我应该什么时候使用它们?

【问题讨论】:

    标签: linux linux-kernel driver grub


    【解决方案1】:

    rd.driver.blacklist 是内核命令行的配置选项,在从 Linux 引导映像 ( initramfs ) 加载内核时应用。在这里,您将调用从该初始文件系统映像加载的某些内核模块。

    稍后,在根文件系统联机后,即已安装并且操作系统正在加载可加载模块......您可以使用modprobe.blacklist 来影响可加载模块的处理。 modprobe 实际上读取内核命令行,以查找影响可加载模块的参数。因此,虽然这个参数看起来适用于 Linux 内核的加载,但实际上并非如此。 modprobe 找到它并使用 modprobe.blacklist 以及其他可加载的模块参数。

    所以是使用 ramdisk 选项还是 modprobe 选项...取决于有问题的驱动程序是否驻留在启动映像中(由 dracut ),或驻留在操作系统的根文件系统中(由 modprobe 处理)。

    参考文献

    dracut 053
    搜索rd.driver.blacklist

    SUSE Linux Enterprise Desktop 文档/管理指南/系统/Managing Kernel Modules
    转到:23.2.2 使用 modprobe 将内核模块列入黑名单

    红帽客户门户 / 产品和服务 / 知识库 / How do I prevent a kernel module from loading automatically?
    转到:
    仅适用于 Red Hat Enterprise Linux 8 的完成步骤
    仅适用于 Red Hat Enterprise Linux 7 的完成步骤

    【讨论】:

    • 感谢您的回答!您能否提供一些参考资料,以便我更好地理解?
    • 我在上面添加了一些链接
    • 感谢添加,@LarryC :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 2012-09-07
    • 1970-01-01
    相关资源
    最近更新 更多