我有一个需要通过配置的系统systemd-networkd
。为了配置以太网适配器,我创建了一个包含以下内容的eth0
文件:/etc/systemd/network/eth.network
[Match]
Name=eth*
KernelCommandLine=!nfsroot
[Network]
Address=10.0.1.100/24
Gateway=10.0.1.1
DNS=8.8.8.8
不幸的是,将日志输出设置为详细后,我发现systemd-networkd
实际上读取了它的配置,从而/lib/systemd/network/80-wired.network
为该适配器配置了 DHCP。
我的问题是:删除/移动该文件安全吗?为什么它会覆盖我的文件?(我的印象是,它/etc
优先于 systemd 附带的文件。)
编辑:我正在使用 yocto 项目的 poky 参考分布的修改版。
答案1
/etc、/run 和 /usr/lib 中相应目录中的所有文件都被收集到一个列表中。
优先顺序是每个文件– 如果 /etc 和 /usr 中有两个文件同名,则 /etc 中的文件优先,而 /usr 中的文件将被忽略。(/usr 的其余部分不会被忽略,只有那个文件会被忽略。)这适用于大多数与 systemd 相关的配置。
之后,对于匹配导向的文件(如 .network 文件),整个列表为按文件名的 ASCII 顺序排序,第一个匹配的文件获胜。文件来自哪个目录并不重要 - 只要它在列表顶部,它就会获胜。
在 ASCII 中,所有数字 (0x30–0x39) 将排在任何字母 (0x40–0x7f) 之前。意思是,8*
排在 之前e*
。
这就是包含的文件被命名的原因80-something
——它为您的自定义文件命名27-whatever
或留下了空间50-whatever
。