Таким образом, я столкнулся с типичной проблемой eth0, названного чем-то еще (enpXsX) с systemd. Таким образом, я попытался создать файл/etc/udev/rules.d/10-network.rules. Это работает просто великолепно. Проблема состоит в том, что я должен сделать эту точную копию своего сервера, и использование SD-карты перемещают его между несколькими физическими серверами регулярно для тестирования. Поскольку 10-network.rules потребности MAC-адрес, это продолжает изменяться каждый раз, я включаю карту в новое устройство. Я создал сценарий, который изменяет его автоматически, и у меня есть выполненный как услуга (changeMAC.service) на, загружаются.
Этот сервис хорошо работает. К сожалению, несмотря на изменение MAC-адреса, прежде чем networking.service запускается, объединение в сеть всегда перестало работать. Чтобы заставить его работать, я должен перезагрузить. Мне нужен он для запуска правильно на первой начальной загрузке.
Используя systemd-анализируют график, я могу сказать, что changeMAC.service на самом деле завершается прежде networking.service. Я думал, что проблема могла бы состоять в том, что это должно запуститься раньше. Однако у меня в настоящее время есть одна SD-карта, где ей действительно удается запустить сразу. Но когда я беру то изображение и помещаю его на мой компьютер для выполнения в VirtualBox, оно возвращается к необходимости в перезагрузке. Я не могу найти различия между SD-картой и vhd.
Я также попытался использовать ifup, ifdown,/etc/init.d/networking перезапуск, systemctl запускают networking.service, чтобы вынудить сети переоценить свою ситуацию и видеть 10-network.rules. Первые три производят ошибки и не выполнятся, последнее выполнится, но networking.service снова не запустится.
Таким образом, я должен знать или как заставить changeMAC.service работать вовремя так, чтобы, кому бы ни нужно 10-network.rules, мог получить его, или я должен знать, как вызвать, кому бы ни нужно 10-network.rules для перезапуска, не перезагружая целую систему.
Можно добавить опцию к GRUB_CMDLINE_LINUX_DEFAULT
в /etc/default/grub
для выключения прогнозирующих имен.
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0"
и можно сохранить другие опции на той строке. Таким образом, Вы не должны волноваться о наличии 10-network.rules
файл с MAC-адресами набора в них.
Удостоверяются, что Вы обновляете личинку после изменения той строки перед перезагрузкой хоста.
sudo update-grub
Hope это помогает!