J'ai changé le nom de mon interface eth1
en eth0
. Comment demander maintenant à udev
de relire la configuration?
service udev restart
et
udevadm control --reload-rules
n'aide pas. Alors, y a-t-il un moyen valable, sauf de redémarrer? (oui, le redémarrage aide à résoudre ce problème)
oui, je sais que je devrais ajouter les commandes avec Sudo
name__, mais l’une ou l’autre que j’ai postée ci-dessus ne change rien à la sortie de ifconfig -a
: Je vois toujours eth1
, pas eth0
.
Je viens de changer la propriété NAME
de la ligne udev-rule. Je ne connais aucune raison pour que cela soit inefficace.
Il n'y a aucune erreur dans l'exécution des deux commandes que j'ai postées ci-dessus, mais elles ne changent tout simplement pas le nom de l'interface réelle 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 des machines virtuelles (pilotées par VirtualBox) et les pré-configure en quelque sorte.
J'exécute donc une commande pour cloner la machine virtuelle, la démarrer et tant que l'interface MAC du réseau est modifiée - udev
ajoute la deuxième règle aux règles persistantes du réseau. Juste après le démarrage de la machine pour la première fois, il y a 2 règles:
eth0
, qui n'existe pas, tant qu'il existait dans le MAC d'origine VM.eth1
, qui existe, mais toute la configuration dans tous les fichiers fait référence à eth0
, donc ce n'est pas très bon pour moiDonc, avec sed
name__, je supprime la ligne avec eth0
(elle est obsolète et inutile dans une image clonée) et je remplace eth1
par eth0
. Donc, actuellement, j'ai une règle persistante valide, mais il reste toujours eth1
dans /dev
.
Le problème: je ne veux pas redémarrer la machine (cela prendra un autre temps, ce qui n’est pas une bonne chose sous building-VM-stage) et je veux juste que mon /dev
soit reconstruit avec une commande afin que je sois prêt à l’emploi VM sans redémarrage.
Je ne sais pas si cela aide à recharger la configuration réseau, mais lorsque j'ai modifié /etc/udev/rules.d/70-persistent-cd.rules
pour corriger le lien de périphérique DVD de /dev/dvd1
à /dev/dvd
, je devais exécuter
Sudo udevadm trigger
pour avoir les nouveaux liens créés.
Vous devez combiner tous les conseils donnés ici dans le bon ordre:
service networking stop
lspci -v
et recherchez "Pilote du noyau utilisé:"modprobe -r <driver module>
udevadm control --reload-rules
udevadm trigger
modprobe <driver module>
service networking start
iptables
qui ont référencé le eth
nom de l'interface avant sa mise en service.Je pense que les étapes 4 et 5 ne sont pas vraiment nécessaires, mais ces étapes ont fonctionné pour moi. Vous pouvez vérifier, après l’étape 4 et l’étape 2.1, si la commande de déclenchement a déjà exécuté l’étape 5, éditez cette réponse pour refléter vos conclusions, le cas échéant.
J'avais un problème similaire. Comme je ne voulais pas prendre le temps de redémarrer, j’ai utilisé une seule ligne en utilisant 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 en utilisant le serveur Ubuntu 12.04.02. Mes nics utilisaient le pilote de module de noyau tg3, changez donc tg3 pour le module utilisé par vos interfaces. J'ai trouvé ceux que j'ai 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 du module de noyau pour le nic
Le seul problème que je rencontrais était un mauvais itinéraire que j'ai corrigé avec une simple commande add route. Merci pour l'aide Chris!
Cela a fonctionné pour moi (sans redémarrer)
udevadm control --reload-rules ; udevadm trigger
Félicitations à l'auteur de cette page: http://memoryfail.wordpress.com/2013/04/02/renaming-network-device-names/
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.
Cela devrait le faire en toute sécurité:
Sudo reload udev
Comme j'ai utilisé cette commande sans aucun problème.
Je fais des recherches à ce sujet depuis un certain temps avec à peu près le même but, et je n’ai pas trouvé le moyen de changer le nom de l’interface réseau dans un système actif.
La solution de contournement que j'ai choisie consiste à supprimer le fichier /etc/udev/rules.d/70-persistent-net.rules dans le modèle, ce qui signifie qu'au prochain démarrage, toute carte réseau sera identifiée par eth0.
Vous devez recharger dev pour déclencher la modification de la règle, mais le périphérique ne sera renommé que si vous déchargez/rechargez le module du pilote.
Donc, modprobe -r e1000 && modprobe e1000
après le rechargement de udev 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.
Donc, pour moi sur VirtualBox avec Ubuntu 12.04, je bascule souvent entre Ethernet et sans fil.
Ainsi, lorsque ma connexion change, je dois choisir la carte pontée dans Périphériques> Paramètres réseau. Soit 'Connexion réseau Intel 82579LM Gigabit' ou 'Intel Centrino Ultimate-N 6300 AGN'.
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.
udevadm trigger
cela fonctionnera entrez la description du lien ici