我应该将模块设置放在哪里,在 /etc/modprobe.d 还是 /lib/modprobe.d?

我应该将模块设置放在哪里,在 /etc/modprobe.d 还是 /lib/modprobe.d?

我的man modprobe.d说法如下:

NAME
       modprobe.d - Configuration directory for modprobe

SYNOPSIS
       /lib/modprobe.d/*.conf

       /etc/modprobe.d/*.conf

       /run/modprobe.d/*.conf

每个文件夹的用途是什么?

我只见过这一页有人在 Red Hat 中遇到了问题,必须将配置文件从/ETC/lib因为前者在初始化内存文件系统

/etc/modprobe.d 目录在 initramfs 中不可用,因此不会创建 initramfsblacklist.conf 并且不遵守 rd.driver.blacklist。

在此处从 /etc/modprobe.d 更改为 /lib/modprobe.d/ 可恢复模块黑名单行为。


举个例子,这是我在一个新的 droplet 中数字海洋Ubuntu 17.10(狡猾的土豚):

ls -l /lib/modprobe.d/

输出:

total 16
-rw-r--r-- 1 root root  655 Aug 15  2017 aliases.conf
-rw-r--r-- 1 root root 1461 Mar 14 07:38 blacklist_linux_4.13.0-38-generic.conf
-rw-r--r-- 1 root root  390 Feb 20 12:50 fbdev-blacklist.conf
-rw-r--r-- 1 root root  668 Feb 20 13:11 systemd.conf

ls -l /etc/modprobe.d/

输出:

total 32
-rw-r--r-- 1 root root  325 Aug 15  2017 blacklist-ath_pci.conf
-rw-r--r-- 1 root root  210 Aug 15  2017 blacklist-firewire.conf
-rw-r--r-- 1 root root  697 Aug 15  2017 blacklist-framebuffer.conf
-rw-r--r-- 1 root root  583 Aug 15  2017 blacklist-rare-network.conf
-rw-r--r-- 1 root root 1603 Aug 15  2017 blacklist.conf
-rw-r--r-- 1 root root  347 Aug 15  2017 iwlwifi.conf
-rw-r--r-- 1 root root  379 Oct 10  2017 mdadm.conf
-rw-r--r-- 1 root root  104 Aug 15  2017 mlx4.conf

和:

ls -l /run/modprobe.d/

输出:

ls: cannot access '/run/modprobe.d/': No such file or directory

都是在启动阶段读取配置文件吗?


进一步阅读链接的页面,似乎/lib/modprobe.d是我们在系统中安装的软件包的配置文件。它正确吗?

答案1

模块设置的位置

/etc/modprobe.d

看来 /lib/modprobe.d 是用于我们在系统中安装的软件包的 conf 文件。

是的,有软件包和站点特定的目录:

modprobe:使用多个配置目录

从以下目录读取配置文件:

/run/modprobe.d 配置文件在运行时生成,例如用于与非标准配置文件的兼容性(例如 Arch 中的 /etc/rc.conf)

管理员手动创建的 /etc/modprobe.d 配置文件

第三方软件包安装的 /lib/modprobe.d 配置文件

第三方软件包开发过程中的 /usr/local/lib/modprobe.d 配置文件

该方案与 udev、systemd 以及其他系统所采用的方案相同。

后续补丁允许一个目录中的文件覆盖其他目录中的文件,就像在其他地方所做的那样。

/usr/lib/modprobe.d/ 也是一个问题,Red Hat 和 Debian 错误跟踪器以及 Arch wiki 上对此有一些争论。(合并的 /usr 支持者和反对者都可以按照自己的方式行事!)

相关内容