Файлы в /etc/network/interfaces.d игнорируются, но не / etc / network / interfaces сами

17

Для Ubuntu 16.04 LTS (GNU / Linux 3.10.96-113 armv7l)

Когда у меня есть следующее, моя статическая конфигурация игнорируется:

/ и т.д. / сеть / интерфейсы

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

Однако, со следующим:

/ и т.д. / сеть / интерфейсы

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» ...)

    
задан Luis de Arquer 25.11.2016 в 20:14
источник

3 ответа

22

Я думаю, что нашел. Из руководства проблема связана с ключевым словом source-directory . Похоже, что с 16.04 он больше не поддерживается.

Итак, заменив

source-directory /etc/network/interfaces.d

с

source /etc/network/interfaces.d/*

, похоже, устраняет проблему.

    
ответ дан Luis de Arquer 27.11.2016 в 15:02
источник
3

У меня была примерно такая же проблема. Оказывается, source-directory поддерживается в моей системе, но включает только файлы, имена файлов которых состоят из букв, цифр, тире и подчеркивания.

Вот почему мой eth0.conf не читался, потому что он содержал точку.

    
ответ дан Sjoerd 21.08.2017 в 17:11
2

Ваше Kernel 3.10 слишком устарело для systemd IFF, использующего systemd-v230 или более новый .

В соответствии с потребностями ядра 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 search сообщает, что ваш armvl7 используется Raspberry Pi и представляет собой 32-битное ядро.

Обновление вашего ядра до современности

Если вам нужна последняя ( 21 октября 2016 г. ) защита "Dirty COW" () плюс множество других исправлений безопасности, исправлений ошибок и улучшений системы ( после версии 2013 ), вы должны быть в ядре 4.4.0-47.

К сожалению, я не знаю, как это сделать для RaspberryPi. Я связал этот вопрос с людьми, которые используют RaspberryPi, и попросил их критиковать этот ответ.

    
ответ дан WinEunuuchs2Unix 26.11.2016 в 00:32