对于 Ubuntu 16.04 LTS(GNU/Linux 3.10.96-113 armv7l)
当我有以下内容时,我的静态配置将被忽略:
/etc/网络/接口
source-directory /etc/network/interfaces.d
/etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet static
address 192.168.40.112
netmask 255.255.255.0
gateway 192.168.40.1
dns-nameservers 8.8.8.8
但是,有以下情况:
/etc/网络/接口
auto eth0
iface eth0 inet static
address 192.168.40.112
netmask 255.255.255.0
gateway 192.168.40.1
dns-nameservers 8.8.8.8
source-directory /etc/network/interfaces.d
静态配置是在启动时设置的(与我在interfaces.d/中的内容无关)。
如果相关的话,我正在使用 udev 规则重命名 eth0 接口(它曾经是“enx001e063110c0”......)
答案1
我想我找到了。从手动的,问题似乎出在source-directory
关键字上。看来,从 16.04 开始,它不再受支持。
因此更换
source-directory /etc/network/interfaces.d
和
source /etc/network/interfaces.d/*
似乎解决了这个问题。
答案2
我遇到了差不多相同的问题。事实证明source-directory
我的系统支持,但只包括文件名由字母、数字、破折号和下划线组成的文件。
这就是为什么我的 eth0.conf 没有被读取,因为它包含一个点。
答案3
你的内核 3.10 太旧了systemd
使用 systemd-v230 或更高版本的 IFF。
根据systemd
github 中的内核要求(github.com-systemd 自述文件systemd-v230
)如果您正在使用或更新版本,则需要版本> = 3.12 :
REQUIREMENTS:
Linux kernel >= 3.12
Linux kernel >= 4.2 for unified cgroup hierarchy support
上面打印了第 37、38 和 39 行。
您的系统运行在 ARM 架构下,坦白说我对此知之甚少。谷歌搜索告诉我您的系统armvl7
由 Raspberry Pi 使用,并且是 32 位内核。
将你的内核更新到现代
如果你想要最新的(2016 年 10 月 21 日)“Dirty COW”安全保护(什么是“Dirty COW”漏洞?我该如何保护我的系统免受其攻击?)以及一系列其他安全补丁、错误修复和系统改进(2013 版之后)您应该使用内核 4.4.0-47。
不幸的是,我不知道如何为 RaspberryPi 做到这一点。我已将这个问题发送给使用 RaspberryPi 的人,并请他们批评这个答案。