Wie starte ich udev richtig neu?

Wie starte ich udev richtig neu?

Ich habe den Namen meiner eth1Schnittstelle in geändert eth0. Wie kann ich udevjetzt 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 an ifconfig -ader Ausgabe: Ich sehe immer noch eth1, nicht eth0.

  • Ich habe gerade die NAMEEigenschaft 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 -ader 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, udevdie 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 MAC
  • eth1, das existiert, aber die gesamte Konfiguration in allen Dateien bezieht sich auf eth0, also ist es für mich nicht so gut

Also sedlösche ich die Zeile mit eth0(sie ist veraltet und im geklonten Image nutzlos) und ersetze sie eth1durch eth0. Damit habe ich derzeit eine gültige persistente Regel, aber es steht immer noch eth1in /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 /devmit 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.rulesdie DVD-Geräteverbindung von /dev/dvd1nach 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:

  1. Bringen Sie das Netzwerk zum Absturzservice networking stop
  2. Entladen Sie das Treibermodul aus dem Kernel
    1. Suchen Sie nach dem Namen des Moduls lspci -vund suchen Sie nach „Verwendeter Kerneltreiber:“
    2. modprobe -r <driver module>
  3. Laden Sie die udev-Regeln neuudevadm control --reload-rules
  4. Lösen Sie die neuen Regeln ausudevadm trigger
  5. Lasttreibermodprobe <driver module>
  6. Starten Sie das Netzwerk neuservice networking start
  7. (optional) Führen Sie alle iptablesSkripts erneut aus, die auf den ethSchnittstellennamen 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 restartsollte funktionieren. Einige der Befehle, die Sie ausprobiert haben, sudokönnten ebenfalls wirksam sein, wenn Sie sie mit ausführen.

verwandte Informationen