Не вдалося запустити мережеві інтерфейси після оновлення до 16.04


28

Я щойно оновив віртуальну серверну машину 14.04 до 16.04. Після перезавантаження VM я бачу таку помилку:

[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.

Сам пристрій віртуальної дротової мережі все ще налаштований у самому VM, як і раніше.

ip linkпоказує також loі ens160- де ens160налаштована mac-адреса в vmware для єдиного налаштованого пристрою віртуальної мережі.

ОНОВЛЕННЯ

Я в змозі вирішити цю проблему, якщо я зміню всі посилання на eth0 /etc/network/interfacesна ens160.

АЛЕ - для мене це неправильно з кількох причин:

  1. Я хотів би зрозуміти цю проблему
  2. Я хотів би дотримуватися eth0 замість ens160

Тож, будь ласка, хтось може пояснити цю зміну, що не відбулося з кількома іншими машинами 14.04 на тому ж сервері, які я також оновив до 16.04.


1
Можливо, це буде копія на: askubuntu.com/questions/704361/…
dufte

Аналогічний опис виправлення є тут: askubuntu.com/a/830163/543586
theINtoy

Відповіді:


15

Причина

Проблема була викликана Predictable-Network-Interface-Names від systemd / udev.

Можливе рішення

За цим джерелом ви можете:

  • Ви вимикаєте присвоєння фіксованих імен, так що непередбачувані імена ядра будуть використані знову. Для цього просто замаскуйте файл правил 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/і додав до нього такий вміст:

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-адреса мережевого пристрою

Я рекомендую перезавантажити після завершення цього, щоб переконатися, що зміни є клейкими.


Я виявив, що мені потрібно запуститись, update-initramfs -uщоб зміни вступили в силу
Анеель,

У моїй системі Debian файл є '/etc/udev/rules.d/70-persistent-net.rules'
jeremiah

6

Вирішено шляхом зміни файлу /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

1

У моєму випадку ця проблема була пов'язана зі спробою підняти мій міст br0. Я забув це зробити:

sudo apt-get install bridge-utils

раніше і тому мій адаптер не зміг розпочати роботу.


2
Це відрізняється від проблеми ОП. Я не впевнений, що ця відповідь належить до цього питання!
Zanna

0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.