Ich habe eine virtuelle Maschine mit Ubuntu Server 15.04 auf die gerade veröffentlichte neue stabile Version 15.10 aktualisiert.
Es gab keine offensichtlichen Probleme, aber nach dem Neustart verlor der Computer seine Netzwerkverbindung. lspci
zeigte die richtige Karte und lsmod
bewies, dass der Fahrer geladen worden war.
Hinweise zum Bearbeiten oder Entfernen /etc/udev/rules.d/70-persistent-net.rules
waren nicht erfolgreich (noch kein Netzwerk, keine neue Datei), die bekannten /lib/udev/write_net_rules
existierten gar nicht.
Ich habe nicht viel Ahnung in Bezug auf udev und systemd, daher habe ich einige Zeit gebraucht, um in / sys / class / net festzustellen, dass sich der Name der Netzwerkschnittstelle geändert hat. Es wurde ens32
, die von umbenannt wurde eth0
. Nachdem ich das /etc/network/interfaces
Netzwerk geändert habe , wurde die Kommunikation wieder aktiviert.
Aber - warum passiert das überhaupt? Und sollte die Interface-Datei in diesem Fall nicht automatisch aktualisiert werden?
Nun, da ich die virtuelle Netzwerkkarte gelöscht und eine andere erstellt habe, eth0
wird eno16777728
das nicht so, ähm, schön.
Sollte dieses Verhalten (zumindest das des Upgrade-Vorgangs) als Fehler gemeldet werden?
Außerdem ist /etc/udev/rules.d/70-persistent-net.rules
jetzt obsolet? Und (obwohl nur teilweise verwandt) was ist mit /etc/udev/rules.d/70-persistent-cd.rules
?)
Bearbeiten - Zusatzfrage (nach akzeptierter Antwort)
Die Abhängigkeit /etc/network/interfaces
vom tatsächlichen Schnittstellennamen hat mich gestört. Ich habe versucht, * ubuntu in einer anderen virtuellen Maschine neu zu installieren. Zu meiner Überraschung /etc/network/interfaces
enthielt ein Verweis nur auf das Loopback-Gerät. Bei meiner ursprünglichen VM verhinderte diese Änderung jedoch das Hochfahren des Netzwerks. Was muss ich sonst noch ändern?
Bearbeiten
Nun, von einem anderen Test fand ich , dass ein neuer Ubuntu Server verfügt über die Netzwerkkarte in /etc/network/interfaces
, während Xubuntu nicht hat. Vielleicht benutzt es network-manager
etwas anderes.
quelle
Antworten:
In Ubuntu 15.10 (Wily Werewolf) werden ab systemd / udev automatisch vorhersehbare, stabile Netzwerkschnittstellennamen für alle lokalen Ethernet-, Wlan- und Wwan-Schnittstellen ( Quelle ) zugewiesen .
Die folgenden unterschiedlichen Benennungsschemata für Netzwerkschnittstellen werden jetzt von udev nativ unterstützt:
eno1
)ens1
)enp2s0
)enx78e7d1ea46da
)eth0
- veraltetStandardmäßig benennt systemd jetzt die Schnittstellen nach folgender Richtlinie:
Wie deaktivierst du das?
Sie haben grundsätzlich folgende Möglichkeiten:
/etc/udev/rules.d/70-my-net-names.rules
cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules
Bearbeiten Sie dann die Datei dort und ändern Sie die Zeilen nach Bedarf.net.ifnames=0
in der Kernel-Befehlszeile.quelle
Es gibt einen einfacheren Weg, den der ArchWiki-Anfängerleitfaden beschreibt .
Holen Sie sich zunächst Ihre Geräte-MAC-Adresse durch
Die Ausgabe zeigt von like
Die MAC-Adresse Ihres Geräts lautet
Einfach die Datei erstellen (einfach mit sudo-Rechten in einem Texteditor öffnen)
Fügen Sie folgende Zeile hinzu
Ersetzen Sie den Namen durch Ihren gewünschten Namen und aa: bb: cc: dd: ee: ff durch die MAC-Adresse Ihres Geräts.
Starten Sie jetzt einfach Ihren Computer neu und der Gerätename sollte sich geändert haben.
quelle
DRIVERS=="?*",
after hinzuACTION=="add",
. Siehe auch askubuntu.com/questions/767786/…Versuchen Sie dies: Bearbeiten Sie Ihre
/etc/default/grub
. Ändern Sie die Zeile vonzu
und zum Schluss:
als root, und starten Sie Ihr System neu.
quelle
append (...) net.ifnames=0 (...)
Ich weiß, dass dies etwas spät sein kann und das Hinzufügen der 10-network.rules scheint geholfen zu haben, aber nicht vollständig. Ich musste den Kernelnamen des Geräts hinzufügen, um es umzubenennen. So habe ich die /etc/udev/rules.d/10-network.rules zum Laufen gebracht ...
und ändern Sie den KERNEL == "" in den Namen Ihres Kernels, der das Gerät beim Booten nennt.
HTH
KC
quelle
Wenn Sie eine Neuinstallation haben
Dann
Überprüfen Sie, ob Sie eine udev net ruels-Datei haben. Wenn ja, entfernen Sie es.
Bearbeiten Sie nun / etc / network / interfaces und benennen Sie die Schnittstellen in eth0, eth1, ... etc um.
Starten Sie neu
quelle
Ich habe dies erreicht, indem ich eine Datei erstellt habe:
quelle