Fehler beim Starten von Raise-Netzwerkschnittstellen nach dem Upgrade auf 16.04


28

Ich habe gerade eine virtuelle 14.04-Servermaschine auf 16.04 aktualisiert. Nach dem Neustart der VM wird folgender Fehler angezeigt:

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

Nach der Anmeldung kann ich den genannten Befehl ausführen und die folgende Ausgabe erhalten (Bild, da ich keine Verbindung herstellen kann):

Bildbeschreibung hier eingeben

Die Konfiguration in /etc/network/interfacessieht gut aus - mit dem manuell konfigurierten eth0 (dhcp wird hier nicht verwendet)

Was mich wundert, sind diese ifconfig -aListen

  • ens160
  • lo

Wo ich erwarten würde

  • eth0
  • lo

Versuch, das eth0-Gerät über aufzurüsten

sudo ifup -v eth0 

Ausgänge:

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

Das virtuelle kabelgebundene Netzwerkgerät selbst ist weiterhin wie zuvor in der VM selbst konfiguriert.

ip linkzeigt auch lound ens160- wo ens160hat der mac die adresse in vmware für das einzelne konfigurierte virtuelle netzwerkgerät konfiguriert.

AKTUALISIEREN

Ich bin in der Lage, das Problem zu lösen, wenn ich alle Verweise von eth0 in /etc/network/interfacesens160 ändere.

ABER - das fühlt sich aus mehreren Gründen für mich falsch an:

  1. Ich würde dieses Problem gerne verstehen
  2. Ich würde gerne bei eth0 bleiben anstatt bei ens160

Kann mir jemand diese Änderung erklären, die nicht bei mehreren anderen 14.04-Rechnern auf demselben Server stattgefunden hat, die ich auch auf 16.04 aktualisiert habe?



Eine ähnliche Beschreibung des Updates finden
Sie

Antworten:


15

Grund

Das Problem wurde durch Predictable-Network-Interface-Names von systemd / udev verursacht.

Mögliche Lösung

Nach dieser Quelle können Sie entweder:

  • Sie deaktivieren die Zuweisung fester Namen, damit die unvorhersehbaren Kernelnamen wieder verwendet werden. Maskieren Sie dazu einfach die Regeldatei von udev für die Standardrichtlinie: ln -s / dev / null /etc/udev/rules.d/80-net-setup-link.rules
  • Sie erstellen ein eigenes manuelles Benennungsschema, indem Sie beispielsweise Ihre Schnittstellen "internet0", "dmz0" oder "lan0" benennen. Erstellen Sie dazu Ihre eigenen .link-Dateien in / etc / systemd / network /, die einen expliziten Namen oder ein besseres Benennungsschema für eine, einige oder alle Ihrer Schnittstellen auswählen. Weitere Informationen finden Sie in systemd.link (5).
  • Sie übergeben net.ifnames = 0 in der Kernel-Befehlszeile

Angewandte Lösungen

Ich habe eine neue Datei 10-rename-network.rulesin erstellt /etc/udev/rules.d/und den folgenden Inhalt hinzugefügt:

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

woher

  • eth0 = Name der gewünschten Netzwerkschnittstelle, verwendet in /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = Hardware-Mac-Adresse des Netzwerkgeräts

Ich würde empfehlen, nach Abschluss dieses Vorgangs einen Neustart durchzuführen, um sicherzustellen, dass die Änderung beibehalten wird.


Ich stellte fest, dass ich rennen musste update-initramfs -u, damit meine Änderungen wirksam wurden
Aneel

Auf meinem Debian-System ist die Datei '/etc/udev/rules.d/70-persistent-net.rules'
jeremiah

6

Gelöst durch Ändern der Datei /etc/network/interfaces.d/setup von:

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

zu:

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

1

In meinem Fall stand dieses Problem im Zusammenhang mit dem Versuch, meine Brücke hochzubringen br0. Ich hatte vergessen, dies zu tun:

sudo apt-get install bridge-utils

vor und so konnte mein Adapter nicht gestartet werden.


2
Dies unterscheidet sich vom OP-Problem. Ich bin nicht sicher, ob diese Antwort zu dieser Frage gehört!
Zanna

0

Möglicherweise möchten Sie den udev-Cache für persistente / konsistente Netzwerkschnittstellennamen löschen / ändern. Dieser befindet sich hier: /etc/udev/rules.d/70-persistent-net.rules

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.