Fișierul /etc/udev/rules.d/70-persistent-net.rules
este generat automat pe un sistem Linux cu udev, dacă nu există, în timpul reporniți. Dar aș vrea să știu cum să creez acest fișier de reguli (cu o comandă) fără a reporni serverul.
Am fost în căutarea pentru un timp și am constatat că fișierul de reguli este generat de acest script:
/lib/udev/write_net_rules
Cu toate acestea, este imposibil să rulați acest script din linia de comandă, deoarece (presupun) că dorește să fie pornit de udev, cu unele variabile de mediu setate corect. Porniți-l manual imprimând mesajul de eroare „lipsă $ INTERFACE”. Chiar dacă am setat variabila ENV INTERFACE = eth0 înainte de începerea scriptului, tot imprimă eroarea „lipsă potrivire validă”. Ca să nu mai vorbesc, am două interfețe (eth0
și eth1
) și vreau ca fișierul de reguli să fie generat pentru ambele.
De asemenea, mă gândeam să declanșez evenimente udev de genul acesta, sperând că va începe scriptul de la udev în sine, dar nimic nu se schimbă:
udevadm trigger --type=devices --action=change
Deci, știe cineva cum să regenerați regulile de rețea persistente în fișierul /etc/udev/rules.d/70-persistent-net.rules
fără repornire?
Comentarii
Răspuns
Potrivit omului pagina --action=change
este valoarea implicită pentru udevadm
.
-c, --action=ACTION Type of event to be triggered. The default value is change.
Prin urmare, mai bine încercați --action=add
. Ar trebui să ajute:
/sbin/udevadm trigger --type=devices --action=add
Comentarii
- intel_rapl: nu s-au găsit domenii rapl valide în pachetul 0
Răspuns
În Ubuntu Server 16.04LTS 70-persistent-net.rules nu există.
tot ce am făcut a fost să rulez:
ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Apoi creați fișierul utilizând
sudo vi /etc/systemd/network/10-internet.link
și adăugați următoarele
[Match] Path=pci-0000:(your device mac address) [Link] Name=eth0 (or whatever you want to name it)
:wq
pentru a salva fișierul
apoi reporniți și reglați fișierul / etc / network / interfaces. Apoi reporniți din nou.
Comentarii
- Întrebarea este " Cum să regenerați 70-persistent-net.rules fără repornire? " Răspunsul dvs. conține două reporniri. Cum este acesta un răspuns la întrebare?
Răspuns
Am avut aceeași problemă, dar am observat că a putut vedea în continuare interfețele din ip addr
listă. Am folosit următoarele (ca rădăcină):
# 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
Repetați pentru fiecare interfață. Acesta a fost folosit pentru a „recupera” fișierul meu. (Notă: o invocație va lista toate interfețele + se va adăuga redenumirea pentru potrivirea uneia, așa că vă recomand să aruncați fișierul de ieșire după o invocare)
Există cu siguranță diferențe între sistemul de operare și implementările UDEV actuale și scripturile de suport Pentru a reține, foloseam CentOS 6.8 când am făcut acest lucru cu succes.
Credit – am făcut referire în principal la acest site. Există un comentariu câteva fire în jos care vorbesc despre modificarea scriptului, dar am preferat să folosesc variabilele de mediu, deoarece erau mai curate: https://access.redhat.com/discussions/1240213
Comentarii
- Mizerii – așteptați. Îmi pare rău, aceasta a fost comanda care nu a funcționat. Trebuie să actualizez răspunsul cu pasul pe care l-am făcut. id = "a785708e33">
li>
70-persistent-net.rules
, nici/lib/udev/write_net_rules
script. Prin urmare, nu pot ' să verific, dar probabil variabila$INTERFACE
este setată în scriptul însuși. Cel mai probabil este trecut ca argument. Ne puteți arăta conținutul scriptului?$INTERFACE
. Există mult mai multe variabile utilizate pur și simplu, niciodată declarate. ' s, deoarece este apelat de udev, iar udev setează toate variabilele env înainte de a rula scriptul la pornire.