Die Datei /etc/udev/rules.d/70-persistent-net.rules
wird auf einem Linux-System mit udev beim Neustart automatisch generiert, sofern sie nicht vorhanden ist. Ich würde aber gerne wissen, wie man diese Regeldatei (mit einem Befehl) erstellt, 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 es (ich nehme an) von udev gestartet werden soll, wobei einige Umgebungsvariablen ordnungsgemäß festgelegt sind. Beim manuellen Starten wird die Fehlermeldung "fehlende $ INTERFACE" ausgegeben. Auch wenn ich vor dem Start des Skripts die env-Variable INTERFACE = eth0 gesetzt habe, wird der Fehler "Fehlende gültige Übereinstimmung" ausgegeben. Ganz zu schweigen davon, dass ich zwei Schnittstellen ( eth0
und eth1
) habe und die Regeldatei für beide generiert werden soll.
Ich habe auch darüber nachgedacht, 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 beständigen Netzregeln in der Datei /etc/udev/rules.d/70-persistent-net.rules
ohne Neustart neu generiert?
70-persistent-net.rules
das/lib/udev/write_net_rules
Skript noch das Skript habe. Daher kann ich nicht überprüfen, aber vermutlich ist die$INTERFACE
Variable im Skript selbst festgelegt. Höchstwahrscheinlich wird es als Argument übergeben. Können Sie uns den Inhalt des Skripts zeigen?$INTERFACE
Variable. Es werden viel mehr Variablen verwendet, die nie deklariert wurden. Dies liegt daran, dass es von udev aufgerufen wird und udev alle env-Variablen festlegt, bevor es das Skript beim Booten ausführt.Antworten:
Laut Manpage
--action=change
ist der Standardwert fürudevadm
.Deshalb versuchen Sie es
--action=add
lieber. Es sollte helfen:quelle
In Ubuntu Server 16.04LTS gibt es die 70-persistent-net.rules nicht.
alles was ich getan habe war gelaufen:
Dann erstellen Sie die Datei mit
und fügen Sie Folgendes hinzu
:wq
um die Datei zu speichernStarten Sie dann neu und passen Sie die Datei / etc / network / interfaces an. Starten Sie dann erneut.
quelle
Ich hatte das gleiche Problem, aber ich bemerkte, dass ich die Schnittstellen in der
ip addr
Liste immer noch sehen konnte . Ich habe folgendes verwendet (als root):Wiederholen Sie dies für jede Schnittstelle. Dies wurde verwendet, um meine Datei "wiederherzustellen". (Hinweis: Ein Aufruf listet alle Schnittstellen auf und fügt eine Umbenennung für eine passende hinzu. 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.
Gutschrift - Ich habe hauptsächlich auf diese Seite verwiesen. Es gibt ein paar Themen weiter, die sich mit dem Ändern des Skripts befassen, aber ich habe es vorgezogen, Umgebungsvariablen zu verwenden, da diese sauberer waren: https://access.redhat.com/discussions/1240213
quelle