我有一个系统需要通过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 参考分布的修改。
/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
.