Cum se regenerează 70-persistent-net.rules fără repornire?

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

  • Care este distributie? Ce fel de sistem init folosește?
  • Aș spune că este irelevant. ' folosesc Slackware cu eUdev și sysvinit. Am examinat scripturile de pornire pentru a afla ce se execută care generează fișierul de reguli, dar am găsit doar declanșatorul udevadm, cu un comentariu că aceasta este comanda pentru a genera regulile persistente, dar cumva acest lucru funcționează doar la repornire, nu efect dacă îl rulez manual.
  • S-ar putea să fie relevant deoarece, pe Arch, nu am nici 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?
  • Scriptul folosește pur și simplu variabila $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.
  • De fapt, trebuie să știți cum să regenerați-l sau puteți pur și simplu să editați fișierul pentru a reflecta noua realitate?

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.

li>

  • Ok, am ' actualizat la modul în care am reparat-o pe a mea. Sper că funcționează dacă se aplică situației dvs.
  • Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *