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.

3voto

rdh Points 844

Cela devrait se faire en toute sécurité :

sudo reload udev

J'ai déjà utilisé cette commande sans problème.

1voto

Fad Points 11

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

La solution que j'ai trouvé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, n'importe quelle carte réseau sera considérée comme eth0.

1voto

Vous devez recharger udev pour déclencher le changement de règle, mais l'appareil ne sera pas renommé tant que vous n'aurez pas déchargé/rechargé le module pilote.

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

0voto

zhou yunjian Points 11

J'ai suivi les instructions de ce guide : Comment régénérer le fichier /etc/udev/rules.d/70-persistent-net.rules sous Debian/Ubuntu ?

La solution consiste à utiliser la commande :

udevadm trigger

qui régénère le /etc/udev/rules.d/70-persistent-net.rules fichier.

0voto

Derek Robati Points 101

Ainsi, sur VirtualBox avec Ubuntu 12.04, je passe souvent de l'Ethernet au sans fil.

Ainsi, lorsque ma connexion change, je dois choisir l'adaptateur ponté dans Périphériques > Paramètres réseau. Soit 'Intel 82579LM Gigabit Network Connection', soit 'Intel Centrino Ultimate-N 6300 AGN'.

Après avoir fait cela, je peux exécuter

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

Il s'agit simplement d'une explication de mes résultats après avoir lu toutes les réponses ci-dessus.

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