it-swarm.com.de

Wie kann man 70-persistent-net.rules ohne Neustart neu generieren?

Die Datei /etc/udev/rules.d/70-persistent-net.rules wird auf einem Linux-System mit udev beim Neustart automatisch generiert, falls es nicht vorhanden ist. Ich möchte jedoch wissen, wie diese Regeldatei (mit einem Befehl) erstellt wird, ohne den Server neu zu starten.

Ich habe eine Weile gegoogelt und festgestellt, dass die Regeldatei von diesem Skript generiert wird:

/lib/udev/write_net_rules

Es ist jedoch unmöglich, dieses Skript über die Befehlszeile auszuführen, da (ich nehme an) es von udev gestartet werden soll, wobei einige Umgebungsvariablen richtig eingestellt sind. Beim manuellen Starten wird die Fehlermeldung "fehlende $ INTERFACE" ausgegeben. Selbst wenn ich vor dem Start des Skripts die env-Variable INTERFACE = eth0 setze, wird der Fehler "fehlende gültige Übereinstimmung" ausgegeben. Ganz zu schweigen davon, dass ich zwei Schnittstellen habe (eth0 und eth1) und ich möchte, dass die Regeldatei für beide generiert wird.

Ich dachte auch daran, solche udev-Ereignisse auszulösen, in der Hoffnung, dass das Skript von udev selbst gestartet wird, aber nichts ändert sich:

udevadm trigger --type=devices --action=change

Weiß jemand, wie man die persistenten Netzregeln in Datei /etc/udev/rules.d/70-persistent-net.rules ohne Neustart?

14
Tomas M

Laut Manpage --action=change ist der Standardwert für udevadm.

   -c, --action=ACTION
       Type of event to be triggered. The default value is change.

Deshalb versuchen Sie es besser mit --action=add stattdessen. Es sollte helfen:

/sbin/udevadm trigger --type=devices --action=add
5
rush

In Ubuntu Server 16.04LTS existiert die 70-persistent-net.rules nicht.

alles was ich getan habe war gelaufen:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

Dann erstellen Sie die Datei mit

Sudo vi /etc/systemd/network/10-internet.link

und fügen Sie Folgendes hinzu

[Match] 
Path=pci-0000:(your device mac address)

[Link] 
Name=eth0 (or whatever you want to name it)

:wq, um die Datei zu speichern

starten Sie dann Ihre Datei/etc/network/interfaces neu und passen Sie sie an. Starten Sie dann erneut.

1
jadey1412

Ich hatte das gleiche Problem, aber ich bemerkte, dass ich die Schnittstellen in der Liste ip addr Immer noch sehen konnte. Ich habe folgendes (als root) verwendet:

# ip addr # to get my mac addresses
# export INTERFACE=eth0; export MATCHADDR="xx:xx:xx:xx:xx:xx"; /lib/udev/write_net_rules
# replace the 00's with the real mac addr

Wiederholen Sie dies für jede Schnittstelle. Dies wurde verwendet, um meine Datei "wiederherzustellen". (Hinweis: Ein Aufruf listet alle Schnittstellen auf + fügt eine Umbenennung hinzu, um eine zu finden. Ich empfehle daher, die Ausgabedatei nach einem Aufruf zu überprüfen.)

Es gibt definitiv Unterschiede zwischen Betriebssystemen und aktuellen UDEV-Implementierungen und Support-Skripten. Zu beachten ist, dass ich CentOS 6.8 verwendet habe, als ich dies erfolgreich durchgeführt habe.

Kredit - Ich habe meistens auf diese Seite verwiesen. Ein paar Threads später gibt es einen Kommentar zum Ändern des Skripts, aber ich habe es vorgezogen, Umgebungsvariablen zu verwenden, da es sauberer war: https://access.redhat.com/discussions/124021

0
gravy21