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
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.
70-persistent-net.ruleseikä/lib/udev/write_net_ruleskäsikirjoitus. Siksi en voi ' tarkistaa, mutta oletettavasti muuttuja$INTERFACEon asetettu itse komentosarjassa. Todennäköisesti se hyväksytään argumenttina. Voitko näyttää meille komentosarjan sisällön?$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ä.