Resolvconf -u podaje błąd „resolvconf: Błąd: /etc/resolv.conf musi być dowiązaniem symbolicznym”

13

Używam resolvconf, aby mieć ustawione statyczne serwery DNS /etc/resolv.conf. Jednak po uruchomieniu sudo resolvconf -uaktualizacji /etc/resolv.confz nowymi informacjami statycznymi pojawia się błąd „resolvconf: Błąd: /etc/resolv.conf musi być dowiązaniem symbolicznym”. Jak mogę to naprawić?

Azendale
źródło

Odpowiedzi:

21

Łatwo to naprawić. Wystarczy otworzyć terminal i uruchomić następujące polecenia:

sudo rm /etc/resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u
Azendale
źródło
1
Ta informacja jest nieaktualna. /etc/resolv.conf musi teraz być dowiązaniem symbolicznym do ../run/resolvconf/resolv.conf.
jdthood
Twierdzenie, że komunikat o błędzie jest spowodowany przerwanym uruchomieniem resolvconf, jest fałszywe.
jdthood,
1
Teraz ma rację. :)
jdthood,
2
@jdthood: dlaczego jest ../potrzebny? Dlaczego nie powinniśmy używać sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf?
Basj
2
@Basj Różnica polega na tym, że sprawia, że ​​dowiązanie symboliczne jest względne: odczytaj go jako coś w rodzaju „przejdź do folderu, następnie„ uruchom ”, następnie„ resolvconf ”, a następnie do pliku„ resolv.conf ””. Zgaduję, że tak czy inaczej działa, ale po co kodować ścieżkę? Co jeśli pracujesz z kontenerami LXC (gdzie główny FS znajduje się w folderze)? Następnie otwarcie łącza z hosta LXC przeniesie Cię do niewłaściwego pliku, jeśli podałeś ścieżkę bezwzględną.
Azendale
11

Od Ubuntu 12.04 resolvconf jest częścią systemu podstawowego. Możesz odtworzyć potrzebne dowiązanie symboliczne, uruchamiając

dpkg-reconfigure resolvconf

lub wykonując następujące czynności w terminalu.

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

Zauważ, że od Ubuntu 12.10 resolvconf nie przerywa już działania, jeśli /etc/resolv.conf nie jest dowiązaniem symbolicznym. Wyświetla komunikat ostrzegawczy, ale można go wyciszyć, umieszczając linię

REPORT_ABSENT_SYMLINK=no

w / etc / default / resolvconf.

jdthood
źródło
Zakładam, że wykonanie dpkg-reconfigurepolecenia zmieni się z /etc/resolv.confpowrotem w dowiązanie symboliczne, nawet jeśli normalny plik znajduje się w /etc/resolv.conf? Czy /etc/resolv.confprzed usunięciem musisz usunąć ln? Wystąpił błąd podczas próby wypróbowania go w moim systemie, ale z drugiej strony nie miałem błędu opisanego w tym pytaniu, gdy go wypróbowałem.
Azendale,
Tak, uruchomienie „dpkg-reconfigure resolvconf” zmienia /etc/resolv.conf z powrotem w dowiązanie symboliczne i jeśli tam był plik; zapisuje kopię oryginalnego pliku na /etc/resolvconf/resolv.conf.d/original. Dobrym pomysłem jest usunięcie /etc/resolv.conf przed umieszczeniem tam dowiązania symbolicznego, ale jeśli użyjesz „ln -nsf”, nie jest to konieczne. Właśnie zmieniłem odpowiedź na „ln -nsf” zamiast „ln -s”.
jdthood,
0

rm -r resolv.conf
nano resolv.conf w nim zrobić

serwer nazw 1.1.1.1

serwer nazw 1.0.0.1

zapisz go za pomocą Ctrl + X.

po tym wykonaj: sudo apt-get install openresolv

po tym: uruchom ponownie komputer, to będzie działać.

POTRZEBOWAŁEM 4 GODZINY, ABY TO ZROBIĆ, JEŚLI ZROBISZ TO DOBRZE

tarling
źródło
1
Czemu krzyczysz?
Pierre.Vriens,