Для Ubuntu 16.04 LTS (GNU / Linux 3.10.96-113 armv7l)
Когда у меня есть следующее, моя статическая конфигурация игнорируется:
/ etc / network / interfaces
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 / network / interfaces [ ! d5]
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
статическая конфигурация устанавливается при загрузке (независимо от того, что у меня есть в интерфейсах.d /).
В случае, если это актуально, я использую правило udev для переименования интерфейс eth0 (он был «enx001e063110c0» ...)
Согласно systemd требованиям ядра в github at (github.com - systemd README) вам нужна версия> = 3.12, если вы используете systemd-v230 или новее:
REQUIREMENTS:
Linux kernel >= 3.12
Linux kernel >= 4.2 for unified cgroup hierarchy support
Линии 37, 38 и 39 напечатаны выше.
Вы работаете под архитектурой ARM, о которой я откровенно знаю мало около. Поиск в Google говорит мне, что ваш armvl7 используется Raspberry Pi и представляет собой 32-битное ядро.
Если вы хотите получить последнюю версию (21 октября 2016 года) ) Защита «Dirty COW» ( github.com - systemd README ) плюс множество других исправлений безопасности, исправлений ошибок и усовершенствований системы (после версии 2013) вы должны быть в ядре 4.4.0- 47.
К сожалению, я не знаю, как это сделать для RaspberryPi. Я связал этот вопрос с людьми, которые используют RaspberryPi, и попросил их критиковать этот ответ.
У меня была примерно такая же проблема. Оказывается, source-directory поддерживается в моей системе, но включает только файлы, имена файлов которых состоят из букв, цифр, тире и подчеркивания.
Вот почему мой eth0.conf не читался, потому что он содержала точку.