Resolvconf -u fornece o erro "resolvconf: Erro: /etc/resolv.conf deve ser um link simbólico"

13

Eu uso o resolvconf para ter servidores DNS estáticos configurados /etc/resolv.conf. No entanto, quando corro sudo resolvconf -upara atualizar /etc/resolv.confcom novas informações estáticas, recebo o erro 'resolvconf: Erro: /etc/resolv.conf deve ser um link simbólico'. Como posso consertar isso?

Azendale
fonte

Respostas:

21

É fácil de consertar. Basta abrir um terminal e executar os seguintes comandos:

sudo rm /etc/resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u
Azendale
fonte
1
Esta informação está obsoleta. O arquivo /etc/resolv.conf agora deve estar vinculado a ../run/resolvconf/resolv.conf.
Jdthood #
A alegação de que a mensagem de erro é causada por uma execução resolvconf interrompida é falsa.
Jdthood 30/10/12
1
Agora está certo. :)
jdthood 7/12/12
2
@jdthood: por que é ../necessário? Por que não devemos usar sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf?
Basj
2
@ Basj A diferença é que torna o link simbólico relativo: leia-o como algo como "vá para uma pasta, depois execute ',' execute ', depois' resolvconf 'e depois para o arquivo' resolv.conf '". Acho que funciona de qualquer maneira, mas por que codificar um caminho? E se você estiver trabalhando com contêineres LXC (onde o FS raiz está em uma pasta)? A abertura do link no host LXC levará você ao arquivo errado se você tiver usado um caminho absoluto.
Azendale 16/05
11

A partir do Ubuntu 12.04, o resolvconf faz parte do sistema base. Você pode recriar o link simbólico necessário executando

dpkg-reconfigure resolvconf

ou fazendo o seguinte em um terminal.

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

Observe que, a partir do Ubuntu 12.10, o resolvconf não aborta mais se /etc/resolv.conf não for um link simbólico. Ele imprime uma mensagem de aviso, mas isso pode ser silenciado colocando a linha

REPORT_ABSENT_SYMLINK=no

em / etc / default / resolvconf.

jdthood
fonte
Estou assumindo que fazer o dpkg-reconfigurecomando /etc/resolv.confvoltar a ser um link simbólico, mesmo que um arquivo normal esteja em /etc/resolv.conf? Além disso, você precisa remover /etc/resolv.confantes de fazer ln? Eu recebi um erro ao tentar fazer isso no meu sistema, mas, novamente, eu não estava tendo o erro descrito nesta pergunta ao tentar.
Azendale
Sim, executar "dpkg-reconfigure resolvconf" altera o /etc/resolv.conf de volta para um link simbólico e se havia um arquivo; ele salva uma cópia do arquivo original em /etc/resolvconf/resolv.conf.d/original. É uma boa idéia remover o /etc/resolv.conf antes de colocar um link simbólico, mas se você usar "ln -nsf", não será necessário fazê-lo. Acabei de alterar a resposta para dizer "ln -nsf" em vez de "ln -s".
Jdthood #
0

rm -r resolv.conf
nano resolv.conf nele

nameserver 1.1.1.1

nameserver 1.0.0.1

salve-o com ctrl + X.

depois disso: sudo apt-get install openresolv

depois disso: reinicie o computador que funcionará.

EU PASSEI 4HRS DEBUGGANDO ESTE. CERTAMENTE FUNCIONARÁ SE VOCÊ O FAZ BEM

tarling
fonte
1
por que você está gritando?
precisa saber é o seguinte