Kuinka uudistaa 70-persistent-net.säännöt ilman uudelleenkäynnistystä?

Tiedosto /etc/udev/rules.d/70-persistent-net.rules luodaan automaattisesti Linux-järjestelmässä udevilla, jos sitä ei ole, aikana käynnistä uudelleen. Mutta haluaisin tietää, miten tämä sääntötiedosto luodaan (komennolla) käynnistämättä palvelinta uudelleen.

Googlen jonkin aikaa ja huomasin, että tämä komentosarja luo sääntötiedoston:

/lib/udev/write_net_rules 

Tätä komentosarjaa ei kuitenkaan voida suorittaa komentoriviltä, koska (oletan) se haluaa käynnistää udev, joidenkin ympäristömuuttujien ollessa asetettu oikein. Käynnistämällä se tulostaa virheilmoituksen ”puuttuu $ INTERFACE”. Vaikka asetan env-muuttujan INTERFACE = eth0 ennen komentosarjan alkua, se silti tulostaa virheen ”puuttuu kelvollinen haku”. Puhumattakaan siitä, että minulla on kaksi rajapintaa (eth0 ja eth1) ja haluan sääntötiedoston luoda molemmille.

Ajattelin myös laukaista tällaisia udev-tapahtumia, toivoen, että se käynnistää komentosarjan itse udevistä, mutta mikään ei muutu:

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

Joten tietääkö kukaan Kuinka luoda tiedostossa /etc/udev/rules.d/70-persistent-net.rules olevat pysyvät verkkosäännöt ilman uudelleenkäynnistystä?

Kommentit

  • Mikä on sinun jakelu? Millaista init-järjestelmää se käyttää?
  • Sanoisin, että sillä ei ole merkitystä. ' m käyttämällä Slackware-ohjelmistoa eUdevin ja sysvinitin kanssa. Tutkin käynnistyskomentosarjoja selvittääkseen, mitä suoritetaan, mikä luo sääntötiedoston, mutta löysi vain udevadm-liipaisimen kommentilla, että tämä on komento pysyvien sääntöjen luomiseksi, mutta jotenkin tämä toimii vain uudelleenkäynnistyksen yhteydessä, ei vaikutus, jos suoritan sen manuaalisesti.
  • Se voi olla merkityksellistä, koska minulla Archissa ei ole 70-persistent-net.rules eikä /lib/udev/write_net_rules käsikirjoitus. Siksi en voi ' tarkistaa, mutta oletettavasti muuttuja $INTERFACE on asetettu itse komentosarjassa. Todennäköisesti se hyväksytään argumenttina. Voitko näyttää meille komentosarjan sisällön?
  • Komentosarja käyttää yksinkertaisesti $INTERFACE -muuttujaa. Paljon enemmän muuttujia on yksinkertaisesti käytetty, ei koskaan ilmoitettu. Se ' s, koska udev kutsuu sitä, ja udev asettaa kaikki env-muuttujat, ennen kuin se suorittaa komentosarjan käynnistyksen yhteydessä.
  • Onko sinun todella tiedettävä, miten uusii se, vai voisitko yksinkertaisesti muokata tiedostoa vastaamaan uutta todellisuutta?

Vastaa

Ihmisen mukaan sivu --action=change on oletusarvo arvolle udevadm.

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

Siksi kannattaa kokeilla sen sijaan --action=add. Sen pitäisi auttaa:

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

kommentteja

  • intel_rapl: paketista 0 ei löytynyt kelvollisia rapl-verkkotunnuksia

vastaus

Ubuntu Server 16.04LTS: ssä 70-persistent-net.rules -asetusta ei ole.

kaikki tekemäni suoritettiin:

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

Luo sitten tiedosto käyttämällä

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

ja lisää seuraava

[Match] Path=pci-0000:(your device mac address) [Link] Name=eth0 (or whatever you want to name it) 

:wq tiedoston tallentamiseksi

käynnistä sitten uudelleen ja säädä / etc / network / interfaces -tiedostosi. Käynnistä sitten uudelleen.

Kommentit

  • Kysymys on " Kuinka uudistaa 70-persistent-net.rules ilman uudelleenkäynnistystä? " Vastauksesi sisältää kaksi uudelleenkäynnistystä. Kuinka tämä on vastaus kysymykseen?

Vastaus

Minulla oli sama ongelma, mutta huomasin voisi silti nähdä liitännät tiedostossa ip addr luettelo. Käytin seuraavaa (pääkäyttäjänä):

# 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 

Toista jokaiselle käyttöliittymälle. Tätä käytettiin tiedostoni ”palauttamiseen”. (Huomaa: yksi kutsu listaa kaikki käyttöliittymät + lisää uudelleennimeä vastaavaksi, joten suosittelen, että kurkistat tulostustiedoston yhden kutsun jälkeen)

Käyttöjärjestelmän ja nykyisten UDEV-toteutusten ja tukiskriptien välillä on varmasti eroja . Huomattakoon, että käytin CentOS 6.8: ta, kun tein tämän onnistuneesti.

Luotto – viittasin enimmäkseen tähän sivustoon. Muutama säikeellä on kommentti, joka puhuu komentosarjan muokkaamisesta, mutta halusin käyttää ympäristömuuttujat puhtaammin: https://access.redhat.com/discussions/1240213

kommentit

  • Paska – odota. Olen ' pahoillani, se oli komento, joka ei toiminut. Minun on päivitettävä vastaus tekemälläni vaihe
  • Ok, olen ' päivittänyt tapani, jolla oikeastaan korjasin omani. Toivottavasti se toimii, jos se soveltuu tilanteeseesi.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *