我有一台装有 Ubuntu 12.04 64 位的机器,我需要将一个模块列入黑名单,我已将其列入黑名单blacklist.conf
但什么也没发生;我已经解决了将其modprobe.blacklist=<module>
作为参数传递给 GRUB 命令行的问题。
我的问题是:modprobe 何时以及如何运行?我很清楚它实际上并不是与内核 1:1 运行的,因为我的内核仍然加载黑名单模块,那么 modprobe 的作用是什么?更重要的是,在启动期间,它在什么级别上运行?
答案1
Linux 内核遵循模块化内核设计。可加载内核模块 (LKM) 是包含用于扩展正在运行的内核或所谓的基本内核的代码的目标文件。LKM 通常用于添加对新硬件、文件系统等的支持。
根据 modprobe.d 的手册页,您必须在 /etc/modprobe.d 目录中创建以 .conf 扩展名结尾的文件,并根据需要指定这些选项。它们还可用于创建方便的别名:模块的替代名称,或者它们可以完全覆盖正常的 modprobe 行为,以满足特殊要求(例如插入多个模块)。
但是如果你想在启动时或其他情况下启动 modprobe - 那么 /etc/modprobe.d 就无法工作。你需要 udev 或 rc.sysinit 或 systemd 等。