Не удалось запустить сетевые интерфейсы Повышения после обновления до 16,04

Я просто обновил виртуальные 14,04 машин сервера до 16,04. После перезагрузки VM я вижу следующую ошибку:

[FAILED] Failed to start Raise network interfaces.
 See 'systemctl status networking.service' for details

После входа в систему я могу выполнить упомянутую команду и получить следующий вывод (изображение, поскольку я не могу соединиться):

enter image description here

Конфигурация в /etc/network/interfaces выглядит хорошо - показ вручную настроенного eth0 (не использующий dhcp здесь)

Что делает меня, удивление - это ifconfig -a списки

  • ens160
  • lo

Где я ожидал бы

  • eth0
  • lo

Попытка к eth0 устройству через

sudo ifup -v eth0 

выводы:

...
Cannot find device "eth0"
Failed to bring up eth0.

Само виртуальное устройство проводной сети все еще настроено в самом VM, как это было прежде.

ip link шоу также lo и ens160 - где ens160 настроили MAC-адрес в VMware для единственного настроенного виртуального сетевого устройства.

ОБНОВЛЕНИЕ

Я могу решить проблему, если я изменяю все ссылки eth0 в /etc/network/interfaces к ens160.

НО - это чувствует себя неправильным при мне по нескольким причинам:

  1. Я хотел бы понять эту проблему
  2. Я хотел бы придерживаться eth0 вместо ens160

Таким образом, может кто-то объяснять это изменение, которого не произошло с несколькими другими 14,04 машинами на том же сервере, который я также обновил до 16,04.

28
задан 6 August 2017 в 11:17

4 ответа

Причина

проблема была вызвана Predictable-Network-Interface-Names от systemd/udev.

Возможное решение

Согласно этот источник Вы можете также:

  • Вы отключаете присвоение фиксированных имен, так, чтобы непредсказуемые имена ядра использовались снова. Для этого, просто файл правила udev's маски для политики по умолчанию: ln-s/dev/null/etc/udev/rules.d/80-net-setup-link.rules
  • Вы создаете свою собственную ручную схему именования, например, путем именования интерфейсов "internet0", "dmz0" или "lan0". Поскольку это создает Ваши собственные .link файлы в/etc/systemd/network/, которые выбирают явное имя или лучшую схему именования для одной, некоторых или всех Ваших интерфейсов. См. systemd.link (5) для получения дополнительной информации.
  • Вы передаете сеть ifnames=0 командной строке

ядра Прикладные решения

, я действительно создал новый файл 10-rename-network.rules в /etc/udev/rules.d/ и добавил следующее содержание к нему:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

, где

  • eth0 = желаемое название сетевого интерфейса, используемое в /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = аппаратный MAC-адрес сетевого устройства

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

15
ответ дан 23 November 2019 в 00:59

В моем случае эта проблема была связана с попыткой поднять мой мост br0. Я забыл делать это:

sudo apt-get install bridge-utils

прежде и таким образом, мой адаптер не мог начать.

1
ответ дан 23 November 2019 в 00:59

Вы могли бы хотеть удалить/изменить udev кэш для персистентных/последовательных названий сетевого интерфейса, расположенных здесь: /etc/udev/rules.d/70-persistent-net.rules

0
ответ дан 23 November 2019 в 00:59

Решенный путем изменения файла/etc/network/interfaces.d/setup от:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

кому:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
6
ответ дан 23 November 2019 в 00:59

Другие вопросы по тегам:

Похожие вопросы: