是否有一个“.d”目录用于在启动时加载模块,与 /etc/modules 相反?

是否有一个“.d”目录用于在启动时加载模块,与 /etc/modules 相反?

我正在使用 Puppet 在我的系统上自动执行一些配置(但是,这与此无关)。对于一组机器,我想在启动时加载内核模块。最优雅的方式似乎是/etc/modules在单独的行上编辑和添加一个。但是,为了更易于维护,我想在“ .d”目录结构中使用单独的文件,而不是让 Puppet 编辑文件。

对于 modprobe 和指定选项或将模块列入黑名单,有/etc/modprobe.d/,但在启动时使用单个新文件实际加载模块的最优雅方法是什么?基本上,我正在寻找不存在的/etc/modules.d/目录。

有什么建议么?

答案1

您正在寻找的目录是

/etc/modules-load.d

例如,要始终加载nf_conntrack_pptp内核模块,请添加nf_conntrack_pptp/etc/modules-load.d/pptp.conf。文件名并不重要,但我猜惯例或要求是以 结尾.conf

这是针对较旧的 Ubuntu 版本(没有 systemd)使用 中的 SysVinit 脚本实现的/etc/init.d/kmod。对于较新的 systemd 版本(15.04+),systemd 会处理此问题。阅读文档man 5 modules-load.d

答案2

您应该能够将额外的 .conf 文件放入 /etc/modprobe.d/ 中以进行模块加载(即使其中的默认文件都是关于黑名单内容的)。

您可能只需将模块名称单独放在一行上,或者如果您需要更复杂的行为,您可以在行首使用“install”。摘自手册页:

install modulename command...
    This is the most powerful primitive: it tells modprobe to run your command 
    instead of inserting the module in the kernel as normal. 

http://manpages.ubuntu.com/manpages/precise/man5/modprobe.conf.5.html

答案3

当使用文件/etc/modules.d你必须使用的目录安装指示。

由于“安装”需要[模块名称] [命令]

install your_module /bin/true

会起作用 ;)

相关内容