忽略 /etc/network/interfaces.d 中的文件,但不会忽略 /etc/network/interfaces 本身

忽略 /etc/network/interfaces.d 中的文件,但不会忽略 /etc/network/interfaces 本身

对于 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

根据systemdgithub 中的内核要求(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 的人,并请他们批评这个答案。

相关内容