web-dev-qa-db-fra.com

Échec du démarrage de Raise Network Interface après la mise à niveau vers 16.04

Je viens de mettre à niveau une machine serveur virtuelle 14.04 vers 16.04. Après le redémarrage de la VM, l'erreur suivante apparaît:

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

Après la connexion, je peux exécuter la commande mentionnée et obtenir le résultat suivant (image car je ne parviens pas à me connecter):

enter image description here

La configuration dans /etc/network/interfaces semble correcte - avec l’eth0 configuré manuellement (sans utiliser dhcp ici)

Ce qui me fait me demander, c’est que ifconfig -a list

  • ens160
  • lo

Où je m'attendrais

  • eth0
  • lo

Essayer de monter le périphérique eth0 via

Sudo ifup -v eth0 

les sorties:

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

Le périphérique réseau câblé virtuel lui-même est toujours configuré dans la VM elle-même comme auparavant.

ip link indique également lo et ens160 - où ens160 possède l'adresse MAC configurée dans vmware pour le seul périphérique de réseau virtuel configuré.

METTRE À JOUR

Je suis capable de résoudre le problème si je change toutes les références de eth0 dans /etc/network/interfaces à ens160.

MAIS - cela ne me convient pas pour plusieurs raisons:

  1. J'aimerais comprendre ce problème
  2. Je voudrais coller à eth0 au lieu de ens160

Alors, s'il vous plaît, quelqu'un peut-il expliquer ce changement, qui n'est pas arrivé à plusieurs autres machines 14.04 sur le même serveur que j'ai également mis à niveau vers 16.04.

26
dufte

Raison

Le problème était dû à Predictable-Network-Interface-Names de systemd/udev.

Solution possible

Selon cette source vous pouvez soit:

  • Vous désactivez l’attribution de noms fixes, afin que les noms de noyau imprévisibles soient réutilisés. Pour cela, masquez simplement le fichier de règles d'udev pour la politique par défaut: ln -s/dev/null /etc/udev/rules.d/80-net-setup-link.rules
  • Vous créez votre propre schéma de nommage manuel, par exemple en nommant vos interfaces "internet0", "dmz0" ou "lan0". Pour cela, créez vos propres fichiers .link dans/etc/systemd/network /, choisissez un nom explicite ou un meilleur schéma de nommage pour une, plusieurs ou toutes vos interfaces. Voir systemd.link (5) pour plus d'informations.
  • Vous passez le net.ifnames = 0 sur la ligne de commande du noyau

Solutions appliquées

J'ai créé un nouveau fichier 10-rename-network.rules dans /etc/udev/rules.d/ et y ai ajouté le contenu suivant:

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

  • eth0 = nom d'interface réseau souhaité, utilisé dans /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = adresse MAC matérielle du périphérique réseau

Je vous recommande de redémarrer après avoir terminé ceci pour vous assurer que le changement est persistant.

14
dufte

vote négatif accepté Résolu en modifiant le fichier /etc/network/interfaces.d/setup à partir de:

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

Dans mon cas, ce problème était lié à la tentative d’affichage de mon pont br0. J'avais oublié de faire ceci:

Sudo apt-get install bridge-utils

avant et donc mon adaptateur ne pouvait pas être démarré.

1
gigo

Vous voudrez peut-être supprimer/modifier le cache udev pour les noms d'interface réseau persistants/cohérents, situés ici: /etc/udev/rules.d/70-persistent-net.rules

0
Angel Genchev