Le fichier /etc/udev/rules.d/70-persistent-net.rules
est généré automatiquement sur un système Linux avec udev, s'il n'existe pas, lors du redémarrage. Mais je voudrais savoir comment créer ce fichier de règles (avec une commande) sans redémarrer le serveur.
J'ai fait des recherches sur Google pendant un certain temps et j'ai constaté que le fichier de règles était généré par ce script:
/lib/udev/write_net_rules
Cependant, il est impossible d'exécuter ce script à partir de la ligne de commande, car (je suppose) qu'il veut être démarré par udev, avec certaines variables d'environnement définies correctement. Le démarrer manuellement imprime le message d'erreur "$ INTERFACE manquante". Même si j'ai défini la variable env INTERFACE = eth0 avant le démarrage du script, il affiche toujours l'erreur "correspondance valide manquante". Sans oublier que j'ai deux interfaces ( eth0
et eth1
) et je veux que le fichier de règles soit généré pour les deux.
Je pensais également déclencher des événements udev comme celui-ci, en espérant que cela démarrerait le script à partir d'udev lui-même, mais rien ne change:
udevadm trigger --type=devices --action=change
Alors, quelqu'un sait-il comment régénérer les règles de réseau persistant dans le fichier /etc/udev/rules.d/70-persistent-net.rules
sans redémarrer?
70-persistent-net.rules
ni le/lib/udev/write_net_rules
script. Par conséquent, je ne peux pas vérifier, mais la$INTERFACE
variable est probablement définie dans le script lui-même. Il est très probablement passé comme argument. Pouvez-vous nous montrer le contenu du script?$INTERFACE
variable. Il y a beaucoup plus de variables simplement utilisées, jamais déclarées. C'est parce qu'il est appelé par udev, et udev définit toutes les variables env avant d'exécuter le script au démarrage.Réponses:
Selon la page de manuel
--action=change
est la valeur par défaut pourudevadm
.Par conséquent, vous feriez mieux d'essayer à la
--action=add
place. Cela devrait aider:la source
Dans Ubuntu Server 16.04LTS, le 70-persistent-net.rules n'existe pas.
je n'ai fait que courir:
Créez ensuite le fichier en utilisant
et ajoutez ce qui suit
:wq
enregistrer le fichierpuis redémarrez et ajustez votre fichier / etc / network / interfaces. Redémarrez ensuite à nouveau.
la source
J'ai eu le même problème, mais j'ai remarqué que je pouvais toujours voir les interfaces dans la
ip addr
liste. J'ai utilisé ce qui suit (en tant que root):Répétez l'opération pour chaque interface. Cela a été utilisé pour "récupérer" mon fichier. (Remarque: une invocation répertoriera toutes les interfaces + ajoutera un renommage pour correspondre à une, donc je vous recommande de jeter un œil au fichier de sortie après une invocation)
Il existe certainement des différences entre les systèmes d'exploitation et les implémentations UDEV actuelles et les scripts de support. À noter, j'utilisais CentOS 6.8 lorsque j'ai réussi.
Crédit - J'ai principalement référencé ce site. Il y a un commentaire quelques discussions qui parlent de la modification du script, mais j'ai préféré utiliser des variables d'environnement car c'était plus propre: https://access.redhat.com/discussions/1240213
la source