Resolvconf -u donne l'erreur «resolvconf: Erreur: /etc/resolv.conf doit être un lien symbolique»

13

J'utilise resolvconf pour installer des serveurs DNS statiques /etc/resolv.conf. Cependant, lorsque je lance la sudo resolvconf -umise à jour /etc/resolv.confavec de nouvelles informations statiques, j'obtiens l'erreur «resolvconf: Erreur: /etc/resolv.conf doit être un lien symbolique». Comment puis-je réparer cela?

Azendale
la source

Réponses:

21

C'est facile à réparer. Ouvrez simplement un terminal et exécutez les commandes suivantes:

sudo rm /etc/resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u
Azendale
la source
1
Ces informations sont obsolètes. /etc/resolv.conf doit maintenant être lié à ../run/resolvconf/resolv.conf.
jdthood
L'affirmation selon laquelle le message d'erreur est provoqué par une exécution de resolvconf interrompue est fausse.
jdthood
1
Maintenant c'est vrai. :)
jdthood
2
@jdthood: pourquoi est-il ../nécessaire? Pourquoi ne devrions-nous pas utiliser sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf?
Basj
2
@Basj La différence est que cela rend le lien symbolique relatif: lisez-le comme quelque chose comme "monter un dossier, puis" exécuter ", puis" resolvconf ", puis dans le fichier" resolv.conf "". Je suppose que l'un ou l'autre fonctionne, mais pourquoi coder en dur un chemin? Que faire si vous travaillez avec des conteneurs LXC (où la racine FS est dans un dossier)? Ensuite, ouvrir le lien depuis l'hôte LXC vous amènera au mauvais fichier si vous avez utilisé un chemin absolu.
Azendale
11

Depuis Ubuntu 12.04, resolvconf fait partie du système de base. Vous pouvez recréer le lien symbolique nécessaire en exécutant

dpkg-reconfigure resolvconf

ou en procédant comme suit dans un terminal.

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

Notez qu'à partir d'Ubuntu 12.10, resolvconf n'interrompt plus si /etc/resolv.conf n'est pas un lien symbolique. Il affiche un message d'avertissement, mais cela peut être réduit au silence en mettant la ligne

REPORT_ABSENT_SYMLINK=no

dans / etc / default / resolvconf.

jdthood
la source
Je suppose que la dpkg-reconfiguremodification de la commande /etc/resolv.confest redevenue un lien symbolique, même si un fichier normal est à /etc/resolv.conf? De plus, devez-vous retirer /etc/resolv.confavant de faire ln? Je reçois une erreur en essayant sur mon système, mais là encore, je n'avais pas l'erreur décrite dans cette question lorsque je l'ai essayée.
Azendale
Oui, l'exécution de "dpkg-reconfigure resolvconf" change /etc/resolv.conf en un lien symbolique et s'il y avait un fichier là-bas; il enregistre une copie du fichier d'origine dans /etc/resolvconf/resolv.conf.d/original. C'est une bonne idée de supprimer /etc/resolv.conf avant d'y mettre un lien symbolique, mais si vous utilisez "ln -nsf" ce n'est pas nécessaire de le faire. Je viens de changer la réponse pour dire "ln -nsf" au lieu de "ln -s".
jdthood
0

rm -r resolv.conf
nano resolv.conf dans ce faire

serveur de noms 1.1.1.1

nameserver 1.0.0.1

enregistrez-le avec ctrl + X.

après cela, faites: sudo apt-get install openresolv

après cela: redémarrez l'ordinateur, cela fonctionnera.

J'ai passé 4 heures à déboguer. Cela fonctionnera sûrement si vous le faites bien

tarling
la source
1
pourquoi criez-vous?
Pierre.Vriens