52 votes

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

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

service udev restart

y

udevadm control --reload-rules

n'aident pas. Existe-t-il donc un moyen valable autre que le redémarrage ? (oui, le redémarrage aide à résoudre ce problème)

  • oui, je sais que je devrais faire précéder les commandes de sudo mais l'un ou l'autre de ceux que j'ai affichés ci-dessus ne change rien à la situation de l ifconfig -a de la production : Je vois toujours eth1 , pas eth0 .

  • Je viens de changer le NAME de la ligne udev-rule. Je ne connais pas de raison pour que cela soit inefficace.

Il n'y a pas d'erreur dans l'exécution des deux commandes que j'ai postées ci-dessus, mais elles ne modifient pas le nom de l'interface dans le fichier ifconfig -a de la production. Si je redémarre, le nom de l'interface change comme prévu.

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

J'exécute donc une commande pour cloner la VM, je la démarre et tant que le MAC de l'interface réseau est modifié, je ne peux pas l'utiliser. udev ajoute la deuxième règle aux règles persistantes du réseau. Juste après le premier démarrage de la machine, il y a 2 règles :

  • eth0 qui n'existe pas, pour autant qu'il ait existé dans l'image originale de la VM MAC
  • eth1 qui existe, mais toute la configuration dans tous les fichiers se réfère à eth0 Il n'est donc pas très bon pour moi

J'ai donc avec sed supprimer la ligne avec eth0 (il est obsolète et inutile dans l'image clonée) et remplacez eth1 con eth0 . J'ai donc actuellement une règle persistante valide, mais il y a encore eth1 en /dev .

La question : Je ne veux pas redémarrer la machine (cela prendrait plus de temps, ce qui n'est pas une bonne chose à l'étape de la construction de la VM) et je veux juste avoir ma /dev reconstruit avec une commande, de sorte que j'ai une VM prête à l'emploi sans aucun redémarrage.

34voto

akaihola Points 523

Je ne sais pas si cela peut aider à recharger la configuration du réseau, mais lorsque j'ai modifié /etc/udev/rules.d/70-persistent-cd.rules pour corriger le lien de l'appareil DVD de /dev/dvd1 a /dev/dvd Je devais courir

sudo udevadm trigger

pour que les nouveaux liens soient créés.

22voto

Vladimir Points 436

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

  1. Faire tomber le réseau service networking stop
  2. Décharger le module pilote du noyau
    1. Trouver le nom du module lspci -v et recherchez "Kernel driver in use :" (pilote du noyau en cours d'utilisation)
    2. modprobe -r <driver module>
  3. Recharger les règles udev udevadm control --reload-rules
  4. Déclencher les nouvelles règles udevadm trigger
  5. Charger le conducteur modprobe <driver module>
  6. Redémarrer le réseau service networking start
  7. (facultatif) Réexécuter tout iptables scripts qui ont fait référence à la eth le nom de l'interface avant qu'elle ne soit ouverte.

Je pense que l'étape 4 ou l'étape 5 n'est pas vraiment nécessaire, mais ces étapes ont fonctionné pour moi. Vous pourriez 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.

6voto

user197674 Points 171

J'ai eu un problème similaire. Comme je ne voulais pas prendre le temps de redémarrer, j'ai lancé un one liner en suivant la suggestion de Chris Wesseling.

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

Cela a fonctionné pour moi sur le serveur Ubuntu 12.04.02. Mes nics utilisaient le pilote de module de noyau tg3, donc changez tg3 pour le module que vos interfaces utilisent. J'ai trouvé celles que la mienne utilisait 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 noyau pour la carte réseau

Le seul problème que j'ai rencontré était un mauvais itinéraire que j'ai corrigé avec une simple commande d'ajout d'itinéraire. Merci pour votre aide Chris !

5voto

pikmaster Points 51

Ceci a fonctionné pour moi (sans redémarrage)

udevadm control --reload-rules ; udevadm trigger

Bravo à l'auteur de cette page : http://memoryfail.wordpress.com/2013/04/02/renaming-network-device-names/

3voto

Eliah Kagan Points 111731

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 la commande sudo pourrait également s'avérer efficace.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X