Resolvconf -u đưa ra lỗi Lỗi độ phân giải: Lỗi: /etc/resolv.conf phải là một symlink


13

Tôi sử dụng độ phân giải để cài đặt máy chủ DNS tĩnh /etc/resolv.conf. Tuy nhiên, khi tôi chạy sudo resolvconf -uđể cập nhật /etc/resolv.confthông tin tĩnh mới, tôi gặp lỗi 'giải quyết: Lỗi: /etc/resolv.conf phải là một liên kết tượng trưng'. Làm thế nào tôi có thể sửa lỗi này?

Câu trả lời:


21

Thật dễ dàng để sửa chữa. Chỉ cần mở một thiết bị đầu cuối và chạy các lệnh sau:

sudo rm /etc/resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u

1
Thông tin này đã lỗi thời. /etc/resolv.conf bây giờ phải được liên kết với ../run/resolvconf/resolv.conf.
jdthood

Khiếu nại rằng thông báo lỗi được gây ra bởi một lần chạy phân giải bị gián đoạn là sai.
jdthood

1
Bây giờ là đúng. :)
jdthood

2
@jdthood: tại sao ../cần thiết? Tại sao chúng ta không nên sử dụng sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf?
Basj

2
@Basj Sự khác biệt là nó làm cho symlink tương đối: đọc nó dưới dạng "đi lên một thư mục, sau đó để 'chạy', sau đó đến 'giải quyết', sau đó đến tệp 'decv.conf'". Tôi đoán một trong hai cách hoạt động, nhưng tại sao mã hóa đường dẫn? Điều gì sẽ xảy ra nếu bạn đang làm việc với các thùng chứa LXC (nơi FS gốc nằm trong một thư mục)? Sau đó, mở liên kết từ máy chủ LXC sẽ đưa bạn đến tệp sai nếu bạn sử dụng một đường dẫn tuyệt đối.
Azendale

11

Kể từ Ubuntu 12.04, độ phân giải là một phần của hệ thống cơ sở. Bạn có thể tạo lại liên kết tượng trưng cần thiết bằng cách chạy

dpkg-reconfigure resolvconf

hoặc bằng cách làm như sau trong một thiết bị đầu cuối.

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

Lưu ý rằng kể từ Ubuntu 12.10, độ phân giải không còn bị hủy bỏ nếu /etc/resolv.conf không phải là một liên kết tượng trưng. Nó không in một thông báo cảnh báo, nhưng điều này có thể bị tắt tiếng bằng cách đặt dòng

REPORT_ABSENT_SYMLINK=no

trong / etc / default / decvconf.


Tôi giả sử thực hiện dpkg-reconfigurelệnh thay đổi /etc/resolv.conftrở thành một liên kết tượng trưng, ​​ngay cả khi một tệp bình thường đang ở /etc/resolv.conf? Ngoài ra, bạn có phải loại bỏ /etc/resolv.conftrước khi làm ln? Tôi gặp lỗi khi thử nó trên hệ thống của mình, nhưng một lần nữa, tôi không gặp lỗi được mô tả trong câu hỏi này khi tôi thử nó.
Azendale

Có, khi chạy "dpkg-recfigure decvconf" sẽ thay đổi /etc/resolv.conf trở lại thành một liên kết tượng trưng và nếu có tệp ở đó; nó lưu một bản sao của tệp gốc tại /etc/resolvconf/resolv.conf.d/origen. Bạn nên xóa /etc/resolv.conf trước khi đặt symlink ở đó, nhưng nếu bạn sử dụng "ln -nsf" thì không cần thiết phải làm như vậy. Tôi vừa thay đổi câu trả lời để nói "ln -nsf" thay vì "ln -s".
jdthood

0

rm -r decv.conf
nano decv.conf trong đó

máy chủ tên 1.1.1.1

máy chủ tên 1.0.0.1

lưu nó với ctrl + X.

sau đó làm: sudo apt-get install openresolv

sau đó: khởi động lại máy tính nó sẽ hoạt động.

TÔI SPENT 4 GIỜ KHAI THÁC NÀY. S W SUR LÀM VIỆC NGAY LẬP TỨC NẾU BẠN LÀM ĐƯỢC


1
Tại sao bạn lại hét?
Pierre.Vriens
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.