Ich habe den Namen meiner eth1
Schnittstelle in geändert eth0
. Wie kann ich udev
jetzt darum bitten, die Konfiguration erneut zu lesen?
service udev restart
Und
udevadm control --reload-rules
hilft nicht. Gibt es also eine andere Möglichkeit als einen Neustart? (ja, ein Neustart hilft bei diesem Problem)
ja, ich weiß, ich sollte den Befehlen eins voranstellen
sudo
, aber die oben geposteten Befehle ändern nichts anifconfig -a
der Ausgabe: Ich sehe immer nocheth1
, nichteth0
.Ich habe gerade die
NAME
Eigenschaft der Udev-Regelzeile geändert. Ich kenne keinen Grund, warum dies wirkungslos sein sollte.
Es liegt kein Fehler vorbei der Ausführung der beiden Befehle, die ich oben gepostet habe, aber sie ändern den tatsächlichen Schnittstellennamen in ifconfig -a
der Ausgabe einfach nicht. Wenn ich einen Neustart durchführe, ändert sich der Schnittstellenname wie erwartet.
Für Entwicklungszwecke schreibe ich ein Skript, das virtuelle Maschinen (VirtualBox-gesteuert) klont und sie in irgendeiner Weise voreinstellt.
Ich führe also einen Befehl zum Klonen der VM aus, starte sie und füge, solange die Netzwerkschnittstellen-MAC geändert wird, udev
die zweite Regel zu den persistenten Netzwerkregeln hinzu. Direkt nach dem ersten Booten der Maschine gibt es zwei Regeln:
eth0
, die nicht existiert, solange sie im ursprünglichen VM-Image vorhanden war MACeth1
, das existiert, aber die gesamte Konfiguration in allen Dateien bezieht sich aufeth0
, also ist es für mich nicht so gut
Also sed
lösche ich die Zeile mit eth0
(sie ist veraltet und im geklonten Image nutzlos) und ersetze sie eth1
durch eth0
. Damit habe ich derzeit eine gültige persistente Regel, aber es steht immer noch eth1
in /dev
.
Das Problem: Ich möchte die Maschine nicht neu starten (das würde noch einmal dauern, was in der Phase des VM-Erstellens nicht gut ist) und möchte sie einfach /dev
mit einem Befehl neu erstellen, damit ich eine einsatzbereite VM ohne Neustarts habe.
Antwort1
Ich weiß nicht, ob dies beim Neuladen der Netzwerkkonfiguration hilft, aber als ich /etc/udev/rules.d/70-persistent-cd.rules
die DVD-Geräteverbindung von /dev/dvd1
nach korrigierte /dev/dvd
, musste ich ausführen
sudo udevadm trigger
um die neuen Links erstellen zu lassen.
Antwort2
Dabei gilt es, alle hier gegebenen Tipps in der richtigen Reihenfolge zu kombinieren:
- Bringen Sie das Netzwerk zum Absturz
service networking stop
- Entladen Sie das Treibermodul aus dem Kernel
- Suchen Sie nach dem Namen des Moduls
lspci -v
und suchen Sie nach „Verwendeter Kerneltreiber:“ modprobe -r <driver module>
- Suchen Sie nach dem Namen des Moduls
- Laden Sie die udev-Regeln neu
udevadm control --reload-rules
- Lösen Sie die neuen Regeln aus
udevadm trigger
- Lasttreiber
modprobe <driver module>
- Starten Sie das Netzwerk neu
service networking start
- (optional) Führen Sie alle
iptables
Skripts erneut aus, die auf deneth
Schnittstellennamen verwiesen haben, bevor dieser aktiv war.
Ich vermute, dass entweder Schritt 4 oder Schritt 5 nicht wirklich erforderlich sind, aber diese Schritte haben bei mir funktioniert. Sie können nach Schritt 4 mit Schritt 2.1 prüfen, ob der Triggerbefehl Schritt 5 bereits ausgeführt hat. Wenn dies der Fall ist, bearbeiten Sie diese Antwort, um Ihre Ergebnisse widerzuspiegeln.
Antwort3
Ich hatte ein ähnliches Problem. Da ich mir nicht die Zeit für einen Neustart nehmen wollte, habe ich einen Einzeiler nach dem Vorschlag von Chris Wesseling ausgeführt.
/etc/init.d/networking stop und modprobe -r tg3 und udevadm control --reload-rules und udevadm trigger und modprobe tg3 und /etc/init.d/networking start
Bei mir hat das mit dem Ubuntu 12.04.02-Server funktioniert. Meine Netzwerkkarten verwendeten den tg3-Kernelmodultreiber. Ändern Sie also tg3 in das Modul, das Ihre Schnittstellen verwenden. Ich habe die gefunden, die meine verwendeten in /etc/udev/rules.d/70-persistent-net.rules
:
PCI-Gerät 0x14e4:/sys/devices/pci0000:00/0000:00:1c.4/0000:02:00.1 (tg3) <-Kernelmodultreiber für die Netzwerkkarte
Das einzige Problem, das ich hatte, war eine fehlerhafte Route, die ich mit einem einfachen Route-Add-Befehl behoben habe. Danke für die Hilfe, Chris!
Antwort4
sudo /etc/init.d/udev restart
sollte funktionieren. Einige der Befehle, die Sie ausprobiert haben, sudo
könnten ebenfalls wirksam sein, wenn Sie sie mit ausführen.