启动时显式加载内核模块

启动时显式加载内核模块

我正在使用 grsecurity 内核,它不允许自动加载内核,因此多个 systemd 服务无法工作。手动加载模块modprobe并重新启动模块后,一切正常,但这是一个相当肮脏的解决方案。我想在启动过程中“正确”地做到这一点。

操作系统是带有 grsec 内核的 Arch linux。

答案1

这在某种程度上取决于您的初始化系统(systemd,或..),但选项是:

  • 内核命令行参数

    模块加载=

  • /etc/modules-load.d/modules.conf

    # /etc/modules:启动时加载的内核模块。 # 该文件包含应该 在引导时
    加载的内核模块的名称,每行一个。
    以“#”开头的行将被忽略。

对于台式机/笔记本电脑,人们通常希望能够插入设备并加载驱动程序模块。

如果这不是您的用例,您还可以考虑使用静态链接的相关模块代码来编译内核(因此根本不会发生模块加载)并完全禁用模块系统。 32 位体系结构上的内核二进制大小存在限制(限制可以静态编译的模块数量)。

看 : ”进行本地修改配置

有关的 :使用 sysctl 防止进一步加载模块

有关的:Fedora,启动时加载模块

答案2

通过将 conf 文件放入 .kernel 文件中,内核启动后会自动加载模块/etc/modules-load.d/mymodules.conf

# Modules to load.
mymodule.ko

就是这样,你可以走了。

您还可以将不需要加载的模块列入黑名单。列入黑名单的模块通常位于/etc/modprobe.d.在这里创建一个conf文件,并列出永远不会被加载的模块。

# Modules to prevent from loading.
blacklist mybadmodule.ko

相关内容