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.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?$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ä.