Я только что обновил виртуальную серверную машину 14.04 до 16.04. После перезагрузки виртуальной машины я вижу следующую ошибку:
[FAILED] Failed to start Raise network interfaces. See 'systemctl status networking.service' for details
После входа в систему я могу запустить указанную команду и получить следующий вывод (изображение, поскольку я не могу подключиться):
Конфигурация в /etc/network/interfaces выглядит нормально - с помощью настроенного вручную eth0 (здесь не используется dhcp)
Что заставляет меня задуматься, так это то, что ifconfig -a списки
ens160
ему
Где я и ожидал бы
eth0
ему
Попытка подключить устройство eth0 с помощью
sudo ifup -v eth0
выходы:
...Cannot find device "eth0"Failed to bring up eth0.
Само виртуальное проводное сетевое устройство по-прежнему настроено в самой виртуальной машине, как и раньше.
ip link показывает, а также lo и ens160 - где ens160 имеет mac-адрес, настроенный в vmware для единственного настроенного виртуального сетевого устройства.
ОБНОВЛЕНИЕ
Я могу решить проблему, если я изменю все ссылки eth0 в /etc/network/interfaces к ens160.
но - мне это кажется неправильным по нескольким причинам:
Я хотел бы разобраться в этой проблеме
Я хотел бы придерживаться eth0 вместо ens160
Поэтому, пожалуйста, кто-нибудь может объяснить это изменение, которого не произошло с несколькими другими машинами 14.04 на том же сервере, который я также обновил до 16.04.
Вы отключаете присвоение фиксированных имен, чтобы снова использовались непредсказуемые имена ядра. Для этого просто замаскируйте файл правил udev для политики по умолчанию: ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Вы создаете свою собственную схему именования вручную, например, называя свои интерфейсы "internet0", "dmz0" или "lan0". Для этого создайте свои собственные файлы .link в /etc/systemd/network/, которые выбирают явное имя или лучшую схему именования для одного, некоторых или всех ваших интерфейсов. См. systemd.link(5) для получения дополнительной информации.
Вы передаете net.ifnames=0 в командной строке ядра
Применяемые решения
Я действительно создал новый файл 10-rename-network.rules в /etc/udev/rules.d/ и добавил к нему следующее содержимое:
Возможно, вы захотите удалить / изменить кэш udev для постоянных/согласованных имен сетевых интерфейсов, расположенных здесь: /etc/udev/rules.d/70-persistent-net.rules