我的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 文件。
是的,有软件包和站点特定的目录:
从以下目录读取配置文件:
/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 支持者和反对者都可以按照自己的方式行事!)