Impossibile avviare Alzare le interfacce di rete dopo l'aggiornamento a 16.04


28

Ho appena aggiornato una macchina server 14.04 virtuale a 16.04. Dopo aver riavviato la VM vedo il seguente errore:

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

Dopo il login posso eseguire il comando citato e ottenere il seguente output (immagine poiché non riesco a connettermi):

inserisci qui la descrizione dell'immagine

La configurazione in /etc/network/interfacessembra a posto - con l'eth0 configurato manualmente (non usando dhcp qui)

Ciò che mi fa chiedere è che ifconfig -aelenchi

  • ens160
  • Lo

Dove mi aspetterei

  • eth0
  • Lo

Tentativo di up up del dispositivo eth0 tramite

sudo ifup -v eth0 

uscite:

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

Lo stesso dispositivo di rete cablato virtuale è ancora configurato nella VM stessa come in precedenza.

ip linkmostra anche loe ens160- dove ens160ha l'indirizzo mac configurato in vmware per il singolo dispositivo di rete virtuale configurato.

AGGIORNARE

Sono in grado di risolvere il problema se cambio tutti i riferimenti di eth0 in /etc/network/interfacesens160.

MA - questo mi sembra sbagliato per diversi motivi:

  1. Vorrei capire questo problema
  2. Vorrei attenermi a eth0 invece di ens160

Quindi, per favore qualcuno può spiegare questo cambiamento, che non è accaduto a molte altre macchine 14.04 sullo stesso server che ho anche aggiornato a 16.04.


1
Potrebbe essere duplicato a: askubuntu.com/questions/704361/…
dufte

Una descrizione simile della correzione è qui: askubuntu.com/a/830163/543586
theINtoy

Risposte:


15

Ragionare

Il problema è stato causato da Predictable-Network-Interface-Names di systemd / udev.

Possibile soluzione

Secondo questa fonte puoi:

  • Disabilitate l'assegnazione di nomi fissi, in modo che i nomi imprevedibili del kernel vengano riutilizzati. Per questo, maschera semplicemente il file delle regole di udev per la politica di default: ln -s / dev / null /etc/udev/rules.d/80-net-setup-link.rules
  • Si crea il proprio schema di denominazione manuale, ad esempio nominando le interfacce "internet0", "dmz0" o "lan0". Per questo crea i tuoi file .link in / etc / systemd / network /, che scelgono un nome esplicito o uno schema di denominazione migliore per una, alcune o tutte le tue interfacce. Vedere systemd.link (5) per ulteriori informazioni.
  • Si passa net.ifnames = 0 nella riga di comando del kernel

Soluzioni applicate

Ho fatto creare un nuovo file 10-rename-network.rulesin /etc/udev/rules.d/e ha aggiunto il seguente contenuto ad esso:

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

dove

  • eth0 = nome dell'interfaccia di rete desiderato, utilizzato in /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = indirizzo mac hardware del dispositivo di rete

Consiglio di riavviare dopo aver completato questo per assicurarsi che la modifica sia appiccicosa.


Ho scoperto che dovevo correre update-initramfs -uper rendere effettive le mie modifiche
Aneel,

Sul mio sistema Debian il file è '/etc/udev/rules.d/70-persistent-net.rules'
Geremia

6

Risolto modificando il file /etc/network/interfaces.d/setup da:

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

a:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp

1

Nel mio caso questo problema era legato al tentativo di far apparire il mio bridge br0. Mi ero dimenticato di fare questo:

sudo apt-get install bridge-utils

prima e quindi il mio adattatore non poteva iniziare.


2
Questo è diverso dal problema di OP. Non sono sicuro che questa risposta appartenga a questa domanda!
Zanna,

0

È possibile che si desideri eliminare / modificare la cache udev per nomi di interfaccia di rete persistenti / coerenti, disponibili qui: /etc/udev/rules.d/70-persistent-net.rules

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.