El archivo /etc/udev/rules.d/70-persistent-net.rules
se genera automáticamente en un sistema Linux con udev, si no existe, durante reiniciar. Pero me gustaría saber cómo crear este archivo de reglas (con un comando) sin reiniciar el servidor.
Estuve buscando en Google por un tiempo y descubrí que el archivo de reglas es generado por este script:
/lib/udev/write_net_rules
Sin embargo, es imposible ejecutar este script desde la línea de comandos, ya que (supongo) quiere ser iniciado por udev, con algunas variables de entorno configuradas correctamente. Al iniciarlo manualmente, se imprime el mensaje de error «falta $ INTERFACE». Incluso si configuro la variable env INTERFACE = eth0 antes del inicio del script, todavía imprime el error «falta una coincidencia válida». Sin mencionar que tengo dos interfaces (eth0
y eth1
) y quiero que se genere el archivo de reglas para ambas.
También estaba pensando en activar eventos udev como este, esperando que inicie el script desde udev mismo, pero nada cambia:
udevadm trigger --type=devices --action=change
Entonces, ¿alguien sabe ¿Cómo regenerar las reglas de red persistentes en el archivo /etc/udev/rules.d/70-persistent-net.rules
sin reiniciar?
Comentarios
Responder
Según man page --action=change
es el valor predeterminado para udevadm
.
-c, --action=ACTION Type of event to be triggered. The default value is change.
Por lo tanto, será mejor que intente --action=add
en su lugar. Debería ayudar:
/sbin/udevadm trigger --type=devices --action=add
Comentarios
- intel_rapl: no se encontraron dominios rapl válidos en el paquete 0
Respuesta
En Ubuntu Server 16.04LTS no existe 70-persistent-net.rules.
todo lo que hice fue ejecutar:
ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Luego, cree el archivo usando
sudo vi /etc/systemd/network/10-internet.link
y agregue lo siguiente
[Match] Path=pci-0000:(your device mac address) [Link] Name=eth0 (or whatever you want to name it)
:wq
para guardar el archivo
luego reinicie y ajuste su archivo / etc / network / interfaces. Luego reinicie nuevamente.
Comentarios
- La pregunta es " ¿Cómo regenerar 70-persistent-net.rules sin reiniciar? " Tu respuesta contiene dos reinicios. ¿Cómo es esto una respuesta a la pregunta?
Respuesta
Tuve el mismo problema, pero noté que aún podría ver las interfaces en el ip addr
lista. Usé lo siguiente (como 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
Repita para cada interfaz. Esto se utilizó para «recuperar» mi archivo. (Nota: una invocación enumerará todas las interfaces + agregará un cambio de nombre para que coincida con una, por lo que te recomiendo que eches un vistazo al archivo de salida después de una invocación)
Definitivamente existen diferencias entre los sistemas operativos y las implementaciones actuales de UDEV y los scripts de soporte. . Para tener en cuenta, estaba usando CentOS 6.8 cuando hice esto con éxito.
Crédito: principalmente hice referencia a este sitio. Hay un comentario en algunos hilos que hablan sobre la modificación del script, pero preferí usar variables de entorno como estaba más limpio: https://access.redhat.com/discussions/1240213
Comentarios
- Mierda, espera. Lo ' lo siento, ese fue el comando que no funcionó. Necesito actualizar la respuesta con el paso que hice
- Ok, ' he actualizado cómo arreglé el mío. Espero que funcione si se aplica a su situación.
70-persistent-net.rules
ni el/lib/udev/write_net_rules
secuencia de comandos. Por lo tanto, no puedo ' t verificar, pero presumiblemente la variable$INTERFACE
está configurada en el propio script. Lo más probable es que se pase como argumento. ¿Puede mostrarnos el contenido del script?$INTERFACE
. Hay muchas más variables que se usan simplemente, nunca declaradas. Es ' s porque es llamado por udev, y udev establece todas las variables env antes de ejecutar el script en el arranque.