Qual è il modo corretto di riavviare udev?

46

Ho cambiato il nome della mia interfaccia eth1 in eth0 . Come chiedere udev ora per rileggere la configurazione?

service udev restart

e

udevadm control --reload-rules

non aiutare. Quindi c'è un modo valido ad eccezione del riavvio? (sì, il riavvio aiuta con questo problema)

  • sì, so che dovrei anteporre i comandi con sudo , ma uno dei due che ho postato sopra non cambia nulla in ifconfig -a output: vedo ancora eth1 , non eth0 .

  • Ho appena cambiato la proprietà NAME di udev-rule line. Non conosco alcun motivo per cui questo sia inefficace.

Non c'è alcun errore nell'esecuzione di entrambi i comandi che ho postato sopra, ma semplicemente non cambiano il nome dell'interfaccia reale in ifconfig -a output. Se eseguo il riavvio, il nome dell'interfaccia cambia come previsto.

Per scopi di sviluppo scrivo degli script che clonano le macchine virtuali (basate su VirtualBox) e le pre-impostano in qualche modo.

Quindi eseguo un comando per clonare VM, avviarlo e fintanto che l'interfaccia di rete MAC è cambiata - udev aggiunge la seconda regola alle regole persistenti di rete. Subito dopo il riavvio del computer per la prima volta ci sono 2 regole:

  • eth0 , che non esiste, purché esistesse nell'immagine VM originale MAC
  • eth1 , che esiste, ma tutta la configurazione di tutti i file si riferisce a eth0 , quindi non è il massimo per me

Quindi con sed elimina la riga con eth0 (è obsoleta e inutilizzabile nell'immagine clonata) e sostituisce eth1 con eth0 . Quindi attualmente ho una regola persistente valida, ma c'è ancora eth1 in /dev .

Il problema: non voglio riavviare la macchina (ci vorrà un'altra volta, che non è buona cosa su building-VM-stage) e voglio solo avere la mia /dev ricostruita con qualche comando così ho VM pronta all'uso senza alcun riavvio.

    
posta zerkms 25.11.2011 - 01:57

10 risposte

29

Non so se questo aiuti a ricaricare la configurazione di rete, ma quando ho modificato /etc/udev/rules.d/70-persistent-cd.rules per correggere il collegamento del dispositivo DVD da /dev/dvd1 a /dev/dvd , ho dovuto eseguire

sudo udevadm trigger

per avere i nuovi collegamenti creati.

    
risposta data akaihola 21.04.2012 - 10:13
18

Devi combinare tutti i consigli dati qui nell'ordine corretto:

  1. Abbassa la rete service networking stop
  2. Scarica il modulo del driver dal kernel
    1. Trova il nome del modulo lspci -v e cerca "Driver Kernel in uso:"
    2. modprobe -r <driver module>
  3. Ricarica le regole di udev udevadm control --reload-rules
  4. Attiva le nuove regole udevadm trigger
  5. Carica driver modprobe <driver module>
  6. Riavvia la rete service networking start
  7. (facoltativo) Riesegui tutti gli script iptables che hanno fatto riferimento al nome dell'interfaccia eth prima che fosse scaduto.

Sospetto che il passaggio 4 o il passaggio 5 non siano realmente necessari, ma questi passaggi hanno funzionato per me. È possibile controllare dopo il passaggio 4 con il passaggio 2.1 per vedere se il comando di attivazione ha già eseguito il passaggio 5, modificare questa risposta per riflettere i risultati ottenuti, se lo si fa.

    
risposta data Chris Wesseling 18.03.2013 - 18:24
5

Ho avuto un problema simile. Dal momento che non volevo prendere il tempo di riavviarmi, ho gestito una nave con il suggerimento di Chris Wesseling.

  

/etc/init.d/networking stop & amp; & amp; modprobe -r tg3 & amp; & amp; controllo udevadm --reload-rules & amp; & amp; trigger e & ud; udevadm & amp; modprobe tg3 & amp; & amp; /etc/init.d/networking start

Questo ha funzionato per me usando il server Ubuntu 12.04.02. I miei nics stavano usando il driver del modulo del kernel tg3, quindi cambiate tg3 al modulo che le vostre interfacce stanno usando. Ho trovato quelli usati in /etc/udev/rules.d/70-persistent-net.rules :

  

Dispositivo PCI 0x14e4: / sys / devices / pci0000: 00/0000: 00: 1c.4 / 0000: 02: 00.1 (tg3) & lt; -kernel driver del modulo per il nic

L'unico problema che ho avuto è stato un pessimo percorso che ho risolto con un semplice comando add route. Grazie per l'aiuto, Chris!

    
risposta data user197674 21.04.2013 - 01:38
4

Questo ha funzionato per me (senza riavviare)

udevadm control --reload-rules ; udevadm trigger

Complimenti all'autore di questa pagina: link

    
risposta data pikmaster 23.09.2014 - 11:48
3

sudo /etc/init.d/udev restart dovrebbe fare il trucco. Alcuni dei comandi che hai provato, se eseguiti con sudo , potrebbero essere efficaci.

    
risposta data Eliah Kagan 25.11.2011 - 02:03
3

Questo dovrebbe farlo in sicurezza:

sudo reload udev

Come ho usato questo comando senza problemi.

    
risposta data rdh 25.11.2011 - 02:05
1

Da un po 'di tempo cerco questo studio con lo stesso scopo, e non sono stato in grado di trovare un modo per cambiare il nome dell'interfaccia di rete in un sistema live.

La soluzione che ho scelto è quella di eliminare il file /etc/udev/rules.d/70-persistent-net.rules nel modello, il che significa che all'avvio successivo vedrà qualsiasi scheda di rete come eth0.

    
risposta data Merlijn 23.12.2011 - 10:42
1

Devi ricaricare udev per attivare la modifica della regola, ma il dispositivo non verrà rinominato a meno che tu non scarichi / ricarichi il modulo del driver.

Quindi modprobe -r e1000 && modprobe e1000 dopo udev reload dovrebbe fare il trucco. Ovviamente, non farlo se hai bisogno della rete e hai solo interfacce e1000.

    
risposta data nodens 24.10.2012 - 15:28
0
udevadm trigger 

funzionerà inserisci la descrizione del link qui

    
risposta data zhou yunjian 30.08.2013 - 04:13
0

Quindi per me su VirtualBox con Ubuntu 12.04, mi capita spesso di passare da Ethernet a wireless.

Quindi quando la mia connessione cambia, devo scegliere Bridged Adapter from Devices & gt; Impostazioni di rete. "Intel 82579LM Gigabit Network Connection" o "Intel Centrino Ultimate-N 6300 AGN".

Dopo aver fatto ciò, posso eseguire

sudo modprobe -r e1000
sudo service udev restart
sudo modprobe e1000
ping google.com # To test I ran this between each command.

Questa è solo una spiegazione dei miei risultati dopo aver letto tutte le risposte sopra.

    
risposta data Derek Robati 15.05.2014 - 15:52

Leggi altre domande sui tag