Resolvconf -u da el error "resolvconf: Error: /etc/resolv.conf debe ser un enlace simbólico"

13

Yo uso resolvconf para tener servidores DNS estáticos establecidos /etc/resolv.conf. Sin embargo, cuando ejecuto la sudo resolvconf -uactualización /etc/resolv.confcon nueva información estática, aparece el error 'resolvconf: Error: /etc/resolv.conf debe ser un enlace simbólico'. ¿Cómo puedo arreglar esto?

Azendale
fuente

Respuestas:

21

Es fácil de arreglar. Simplemente abra una terminal y ejecute los siguientes comandos:

sudo rm /etc/resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u
Azendale
fuente
1
Esta información es obsoleta. /etc/resolv.conf ahora debe estar enlazado a ../run/resolvconf/resolv.conf.
jdthood
La afirmación de que el mensaje de error es causado por una ejecución interrumpida de resolvconf es falsa.
jdthood
1
Ahora esta bien. :)
jdthood
2
@jdthood: ¿por qué es ../necesario? ¿Por qué no deberíamos usar sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf?
Basj
2
@Basj La diferencia es que hace que el enlace simbólico sea relativo: léalo como algo así como "sube una carpeta, luego a 'ejecutar', luego a 'resolvconf', luego al archivo 'resolv.conf'". Supongo que de cualquier manera funciona, pero ¿por qué codificar una ruta? ¿Qué sucede si está trabajando con contenedores LXC (donde el FS raíz está en una carpeta)? Luego, abrir el enlace desde el host LXC lo llevará al archivo incorrecto si utilizó una ruta absoluta.
Azendale
11

A partir de Ubuntu 12.04 resolvconf es parte del sistema base. Puede recrear el enlace simbólico necesario ejecutando

dpkg-reconfigure resolvconf

o haciendo lo siguiente en una terminal.

sudo ln -nsf ../run/resolvconf/resolv.conf /etc/resolv.conf

Tenga en cuenta que a partir de Ubuntu 12.10 resolvconf ya no se cancela si /etc/resolv.conf no es un enlace simbólico. Imprime un mensaje de advertencia, pero esto se puede silenciar poniendo la línea

REPORT_ABSENT_SYMLINK=no

en / etc / default / resolvconf.

jdthood
fuente
¿Asumo que hacer que el dpkg-reconfigurecomando cambie de /etc/resolv.confnuevo a ser un enlace simbólico, incluso si hay un archivo normal en /etc/resolv.conf? Además, ¿tienes que eliminar /etc/resolv.confantes de hacerlo ln? Recibo un error al intentarlo en mi sistema, pero, de nuevo, no estaba teniendo el error descrito en esta pregunta cuando lo intenté.
Azendale el
Sí, ejecutar "dpkg-reconfigure resolvconf" cambia /etc/resolv.conf nuevamente en un enlace simbólico y si había un archivo allí; guarda una copia del archivo original en /etc/resolvconf/resolv.conf.d/original. Es una buena idea eliminar /etc/resolv.conf antes de poner un enlace simbólico allí, pero si usa "ln -nsf" no es necesario hacerlo. Acabo de cambiar la respuesta para decir "ln -nsf" en lugar de "ln -s".
jdthood
0

rm -r resolv.conf
nano resolv.conf en do do

servidor de nombres 1.1.1.1

servidor de nombres 1.0.0.1

guárdelo con ctrl + X.

después de eso hacer: sudo apt-get install openresolv

después de eso: reinicie la computadora, funcionará.

Pasé 4 horas depurando esto. Funcionará realmente si lo haces bien

tarling
fuente
1
¿Por qué estás gritando?
Pierre.Vriens