Jak regenerovat 70-persistent-net.rules bez restartu?

Soubor /etc/udev/rules.d/70-persistent-net.rules se automaticky generuje v systému Linux s udev, pokud neexistuje, během restartovat. Rád bych ale věděl, jak vytvořit tento soubor pravidel (pomocí příkazu) bez restartování serveru.

Chvíli jsem Googloval a zjistil, že soubor pravidel je generován tímto skriptem:

/lib/udev/write_net_rules 

Je však nemožné spustit tento skript z příkazového řádku, protože (předpokládám), že chce být spuštěn programem udev se správně nastavenými proměnnými prostředí. Při ručním spuštění se vytiskne chybová zpráva „chybí $ ROZHRANÍ“. I když před spuštěním skriptu nastavím proměnnou env INTERFACE = eth0, stále vytiskne chybu „chybí platná shoda“. Nemluvě o tom, že mám dvě rozhraní (eth0 a eth1) a chci soubor pravidel vygenerovaný pro obě.

Také jsem uvažoval o spuštění událostí udev, jako je tento, v naději, že spustí skript ze samotného udev, ale nic se nezmění:

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

Takže, ví někdo jak regenerovat trvalá síťová pravidla v souboru /etc/udev/rules.d/70-persistent-net.rules bez restartu?

Komentáře

  • Jaký je váš rozdělení? Jaký druh systému init používá?
  • Řekl bych, že je to irelevantní. ' m používám Slackware s eUdev a sysvinit. Zkoumal jsem spouštěcí skripty, abych zjistil, co se provádí, který generuje soubor pravidel, ale našel jsem pouze udevadm trigger, s komentářem, že toto je příkaz pro generování trvalých pravidel, ale nějak to funguje pouze při restartu, ne efekt, pokud jej spustím ručně.
  • Může to být relevantní, protože já na Archu nemám ani 70-persistent-net.rules ani /lib/udev/write_net_rules skript. Proto nemohu ' t zkontrolovat, ale pravděpodobně je proměnná $INTERFACE nastavena v samotném skriptu. S největší pravděpodobností je předáván jako argument. Můžete nám ukázat obsah skriptu?
  • Skript jednoduše používá proměnnou $INTERFACE. Existuje mnohem více jednoduše použitých proměnných, nikdy deklarovaných. Je to ' s, protože jej volá udev a udev nastaví všechny proměnné env před spuštěním skriptu při spuštění.
  • Opravdu potřebujete vědět, jak regenerovat jej, nebo byste mohli jednoduše upravit soubor tak, aby odrážel novou realitu?

odpověď

Podle člověka stránka --action=change je výchozí hodnota pro udevadm.

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

Raději proto zkuste --action=add. Mělo by to pomoci:

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

Komentáře

  • intel_rapl: v balíčku 0 nebyly nalezeny žádné platné domény rapl / li>

Odpověď

Na serveru Ubuntu Server 16.04LTS 70-persistent-net.rules neexistuje.

vše, co jsem udělal, bylo spuštěno:

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

Poté vytvořte soubor pomocí

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

a přidejte následující

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

:wq soubor uložte

poté restartujte a upravte soubor / etc / network / interfaces. Potom restartujte znovu.

Komentáře

  • Otázka zní " Jak regenerovat 70-persistent-net.rules bez restartu? " Vaše odpověď obsahuje dva restarty. Jak je to odpověď na otázku?

Odpověď

Měl jsem stejný problém, ale všiml jsem si stále mohl vidět rozhraní v ip addr seznam. Použil jsem následující (jako root):

# 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 

Opakujte pro každé rozhraní. To bylo použito k „obnovení“ mého souboru. (Poznámka: Jedno vyvolání vypíše všechna rozhraní + přidá přejmenování pro odpovídající, takže po jednom vyvolání doporučuji nahlédnout do výstupního souboru.)

Mezi OS a aktuálními implementacemi UDEV a podpůrnými skripty jsou určitě rozdíly . Všimněte si, že jsem používal CentOS 6.8, když jsem to udělal úspěšně.

Kredit – většinou jsem odkazoval na tento web. Existuje několik podprocesů, které hovoří o úpravách skriptu, ale raději jsem použil proměnné prostředí, jak to bylo čistší: https://access.redhat.com/discussions/1240213

Komentáře

  • kecy – počkejte. ' omlouvám se, to byl příkaz, který nefungoval. Odpověď musím aktualizovat krokem, který jsem udělal
  • Dobře, ' jsem se aktualizoval na to, jak jsem vlastně opravil svůj. Doufám, že to bude fungovat, pokud se to týká vaší situace.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *