Le fichier /etc/udev/rules.d/70-persistent-net.rules
est généré automatiquement sur un système Linux avec udev, sil nexiste pas, pendant redémarrer. Mais jaimerais savoir comment créer ce fichier de règles (avec une commande) sans redémarrer le serveur.
Jai cherché sur Google pendant un moment et jai trouvé que le fichier de règles est généré par ce script:
/lib/udev/write_net_rules
Cependant, il est impossible dexécuter ce script à partir de la ligne de commande, car (je suppose) quil veut être démarré par udev, avec certaines variables denvironnement définies correctement. Le démarrage manuel imprime le message derreur « $ INTERFACE manquant ». Même si jai défini la variable denvironnement INTERFACE = eth0 avant le démarrage du script, il affiche toujours lerreur « correspondance valide manquante ». Sans oublier que jai deux interfaces (eth0
et eth1
) et je veux que le fichier de règles soit généré pour les deux.
Je pensais aussi déclencher des événements udev comme celui-ci, en espérant que le script démarrera à partir dudev lui-même, mais rien ne change:
udevadm trigger --type=devices --action=change
Alors, est-ce que quelquun sait comment régénérer les règles de réseau persistantes dans le fichier /etc/udev/rules.d/70-persistent-net.rules
sans redémarrage?
Commentaires
Réponse
Selon lhomme page --action=change
est la valeur par défaut de udevadm
.
-c, --action=ACTION Type of event to be triggered. The default value is change.
Par conséquent, vous feriez mieux dessayer --action=add
à la place. Cela devrait aider:
/sbin/udevadm trigger --type=devices --action=add
Commentaires
- intel_rapl: aucun domaine rapl valide trouvé dans le package 0
Réponse
Dans Ubuntu Server 16.04LTS, les 70-persistent-net.rules n’existent pas.
je nai fait que lancer:
ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Ensuite, créez le fichier en utilisant
sudo vi /etc/systemd/network/10-internet.link
et ajoutez ce qui suit
[Match] Path=pci-0000:(your device mac address) [Link] Name=eth0 (or whatever you want to name it)
:wq
pour enregistrer le fichier
puis redémarrez et ajustez votre fichier / etc / network / interfaces. Puis redémarrez à nouveau.
Commentaires
- La question est " Comment régénérer 70-persistent-net.rules sans redémarrage? " Votre réponse contient deux redémarrages. En quoi est-ce une réponse à la question?
Réponse
Jai eu le même problème, mais jai remarqué que je pouvait toujours voir les interfaces dans le ip addr
. Jai utilisé ce qui suit (en tant que root):
# ip addr # to get my mac addresses # export INTERFACE=eth0; export MATCHADDR="xx:xx:xx:xx:xx:xx"; /lib/udev/write_net_rules # replace the 00"s with the real mac addr
Répéter pour chaque interface. Cela a été utilisé pour « récupérer » mon fichier. (Remarque: un appel listera toutes les interfaces + ajoutera un nouveau nom pour celui qui correspond, donc je vous recommande de jeter un œil au fichier de sortie après un appel)
Il y a certainement des différences entre les OS et les implémentations UDEV actuelles et les scripts de support . A noter, jutilisais CentOS 6.8 quand jai réussi.
Crédit – Jai surtout référencé ce site. Il y a un commentaire quelques fils plus bas qui parlent de la modification du script, mais jai préféré utiliser variables denvironnement car il était plus propre: https://access.redhat.com/discussions/1240213
Commentaires
- Merde – attendez. Je ' m désolé, cétait la commande qui na pas fonctionné. Je dois mettre à jour la réponse avec létape que jai effectuée
- OK, jai ' mis à jour la façon dont jai réellement corrigé le mien. Jespère que cela fonctionne si cela sapplique à votre situation.
70-persistent-net.rules
ni le/lib/udev/write_net_rules
script. Par conséquent, je peux ' t vérifier, mais vraisemblablement la variable$INTERFACE
est définie dans le script lui-même. Très probablement, il est passé comme argument. Pouvez-vous nous montrer le contenu du script?$INTERFACE
. Il y a beaucoup plus de variables simplement utilisées, jamais déclarées. Il ' car il est appelé par udev, et udev définit toutes les variables denvironnement avant dexécuter le script au démarrage.