Quelle est la bonne façon de redémarrer udev?

46

J'ai changé le nom de mon interface eth1 en eth0 . Comment demander à udev maintenant de relire la configuration?

service udev restart

et

udevadm control --reload-rules

ne aide pas Existe-t-il un moyen valable, sauf de redémarrer? (oui, le redémarrage aide avec ce problème)

  • oui, je sais que je devrais ajouter les commandes avec sudo , mais l’un ou l’autre que j’ai posté ci-dessus ne change rien en ifconfig -a en sortie: je vois toujours eth1 , pas eth0 .

  • Je viens de changer la propriété NAME de la ligne de règles udev. Ne savez pas pourquoi cela est inefficace.

Il n'y a pas d'erreur dans l'exécution des deux commandes que j'ai publiées ci-dessus, mais elles ne modifient tout simplement pas le nom de l'interface dans la sortie ifconfig -a . Si j'effectue un redémarrage, le nom de l'interface change comme prévu.

À des fins de développement, j'écris un script qui clone les machines virtuelles (pilotées par VirtualBox) et les pré-configure d'une manière ou d'une autre.

J'effectue donc une commande pour cloner la machine virtuelle, la démarrer et tant que le code MAC de l'interface réseau est modifié - udev ajoute la deuxième règle aux règles persistantes du réseau. Juste après le démarrage de la machine, il y a 2 règles:

  • eth0 , qui n'existe pas, tant qu'il existait dans l'image de la machine virtuelle d'origine MAC
  • eth1 , qui existe, mais toute la configuration de tous les fichiers fait référence à eth0 , donc ce n'est pas bon pour moi

Donc, avec sed , supprimez la ligne avec eth0 (elle est obsolète et inutile dans une image clonée) et remplacez eth1 par eth0 . J'ai donc actuellement une règle persistante valide, mais il y a toujours eth1 dans /dev .

Le problème: je ne veux pas redémarrer la machine (cela prendra encore du temps, ce qui n’est pas une bonne chose lors de la construction de VM-stage) et je veux juste que mon /dev soit reconstruit avec une commande, VM prête à l'emploi sans aucun redémarrage.

    
posée zerkms 25.11.2011 - 01:57
la source

10 réponses

29

Je ne sais pas si cela aide à recharger la configuration du réseau, mais lorsque j'ai modifié /etc/udev/rules.d/70-persistent-cd.rules pour corriger le lien du périphérique DVD de /dev/dvd1 à /dev/dvd , j'ai dû exécuter

sudo udevadm trigger

pour obtenir les nouveaux liens créés.

    
réponse donnée akaihola 21.04.2012 - 10:13
la source
18

Vous devez combiner tous les conseils donnés ici dans le bon ordre:

  1. Arrêtez le réseau service networking stop
  2. Déchargez le module de pilote du noyau
    1. Recherchez le nom du module lspci -v et recherchez "Pilote du noyau utilisé:"
    2. modprobe -r <driver module>
  3. Rechargez les règles udev udevadm control --reload-rules
  4. Déclenchez les nouvelles règles udevadm trigger
  5. Charger le pilote modprobe <driver module>
  6. Redémarrez le réseau service networking start
  7. (facultatif) Exécutez à nouveau tous les scripts iptables faisant référence au nom de l'interface eth avant la mise à jour.

Je soupçonne que les étapes 4 ou 5 ne sont pas vraiment nécessaires, mais ces étapes ont fonctionné pour moi. Vous pouvez vérifier après l'étape 4 avec l'étape 2.1 pour voir si la commande de déclenchement a déjà fait l'étape 5, modifiez cette réponse pour refléter vos résultats si vous le faites.

    
réponse donnée Chris Wesseling 18.03.2013 - 18:24
la source
5

J'ai eu un problème similaire. Étant donné que je ne voulais pas prendre le temps de redémarrer, j'ai couru une ligne en utilisant la suggestion de Chris Wesseling.

  

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

Cela a fonctionné pour moi en utilisant le serveur Ubuntu 12.04.02. Mes images utilisaient le pilote de module du noyau tg3, donc changez tg3 pour le module utilisé par vos interfaces. J'ai trouvé ceux utilisés dans /etc/udev/rules.d/70-persistent-net.rules :

  

Périphérique PCI 0x14e4: / sys / devices / pci0000: 00/0000: 00: 1c.4 / 0000: 02: 00.1 (tg3) Pilote de module de noyau pour le nic

Le seul problème que je rencontrais était une mauvaise route que j'ai corrigée avec une simple commande d'ajout d'itinéraire. Merci pour l'aide Chris!

    
réponse donnée user197674 21.04.2013 - 01:38
la source
4

Cela a fonctionné pour moi (sans redémarrer)

udevadm control --reload-rules ; udevadm trigger

Bravo à l'auteur de cette page: lien

    
réponse donnée pikmaster 23.09.2014 - 11:48
la source
3

sudo /etc/init.d/udev restart devrait faire l'affaire. Certaines des commandes que vous avez essayées, si elles sont exécutées avec sudo , peuvent également être efficaces.

    
réponse donnée Eliah Kagan 25.11.2011 - 02:03
la source
3

Cela devrait le faire en toute sécurité:

sudo reload udev

Comme j'ai utilisé cette commande sans aucun problème.

    
réponse donnée rdh 25.11.2011 - 02:05
la source
1

J'ai fait des recherches pendant un certain temps avec à peu près le même objectif, et je n'ai pas été en mesure de trouver un moyen de changer le nom de l'interface réseau dans un système en direct.

La solution de contournement que j'ai utilisée consiste à supprimer le fichier /etc/udev/rules.d/70-persistent-net.rules dans le modèle, ce qui signifie qu'au prochain démarrage, il verra eth0 comme une carte réseau.

    
réponse donnée Merlijn 23.12.2011 - 10:42
la source
1

Vous devez recharger udev pour déclencher le changement de règle, mais le périphérique ne sera pas renommé à moins que vous déchargiez / rechargiez le module de pilote.

Donc, modprobe -r e1000 && modprobe e1000 après udev reload devrait faire l'affaire. Bien sûr, ne le faites pas si vous avez besoin du réseau et que vous n'avez que des interfaces e1000.

    
réponse donnée nodens 24.10.2012 - 15:28
la source
0
udevadm trigger 

ça va marcher Entrez la description du lien ici

    
réponse donnée zhou yunjian 30.08.2013 - 04:13
la source
0

Pour moi sur VirtualBox avec Ubuntu 12.04, je passe souvent d’Ethernet à la radio.

Lorsque ma connexion change, je dois choisir l’adaptateur ponté à partir de Devices & gt; Paramètres réseau. Soit 'Connexion réseau Gigabit Intel 82579LM' ou 'AGN Intel Centrino Ultimate-N 6300'.

Après cela, je peux courir

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

Ceci est juste une explication de mes résultats après avoir lu toutes les réponses ci-dessus.

    
réponse donnée Derek Robati 15.05.2014 - 15:52
la source

Lire d'autres questions sur les étiquettes