systemd-networkd не запускается при сетевой загрузке через pxelinux

systemd-networkd не запускается при сетевой загрузке через pxelinux

Я создал файл ссылки systemd для принудительного назначения имен постоянным сетевым интерфейсам для стека хостов, загружаемых через сеть. Поскольку MAC различается между машинами, мне приходится использовать путь PCI для сопоставления интерфейса:

[Match]
Path=pci-0000:02:00.0-0

[Link]
Name=eth0

Это работает в виртуальной машине или на физическом компьютере. Однако в хосте сетевой загрузки происходит сбой с сообщением:

Failed at step NAMESPACE spawning /usr/lib/systemd/system/systemd-networkd: Invalid Argument

Я пробовал удалить файл ссылки и перезагрузиться, но результат тот же. Так что это не имеет никакого отношения к моему файлу ссылки.

Хост сетевой загрузки создан на базе Centos 7.2.

Ранее, в CentOS 6, мы использовали постоянное сетевое правило в /etc/udev.rules, но в CentOS 7 оно не работает.

решение1

Systemd имеет ряд опций, которые можно задать в файле юнита сервиса для защиты определенных каталогов в файловой системе. Это делается с помощью пространства имен файловой системы.

Похоже, что эта функция не поддерживается на хосте с загрузкой PXE, поэтому службы, которым она требуется, не запустятся.

В случае systemd-networkd это можно исправить, отключив все параметры, требующие пространства имен.

Сначала создайте копию файла службы. Файлы в /etc/systemdзаменят значения по умолчанию в /usr/lib/systemd:

cp /usr/lib/systemd/system/networkd-systemd.service /etc/systemd/systemd/

Теперь отредактируйте /etc/systemd/system/systemd-networkd.service, удалив защиту пространства имен:

ProtectSystem=no
ProtectHome=no

Наконец, перезапустите демон:

systemctl restart networkd-systemd

Предупреждение: это может подвергнуть риску безопасность.

Связанный контент