Resolvconf -u ให้ข้อผิดพลาด“ resolvconf: ข้อผิดพลาด: /etc/resolv.conf ต้องเป็น symlink”


13

ผมใช้ resolvconf จะมีเซิร์ฟเวอร์ DNS /etc/resolv.confที่คงที่ตั้งอยู่ใน อย่างไรก็ตามเมื่อฉันรันsudo resolvconf -uเพื่ออัปเดต/etc/resolv.confด้วยข้อมูลคงที่ใหม่ฉันได้รับข้อผิดพลาด 'resolvconf: ข้อผิดพลาด: /etc/resolv.conf ต้องเป็น symlink' ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

คำตอบ:


21

แก้ไขได้ง่าย เพียงเปิดเทอร์มินัลแล้วเรียกใช้คำสั่งต่อไปนี้:

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

1
ข้อมูลนี้ล้าสมัย /etc/resolv.conf ต้องเชื่อมโยงกับ ../run/resolvconf/resolv.conf
jdthood

การอ้างสิทธิ์ว่าข้อความแสดงข้อผิดพลาดนั้นเกิดจากการรัน resolvconf ขัดจังหวะเป็นเท็จ
jdthood

1
ตอนนี้มันถูกต้องแล้ว :)
jdthood

2
@jdthood: ทำไม../ต้องมี ทำไมเราไม่ควรใช้sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf?
Basj

2
@Basj ความแตกต่างคือมันทำให้ symlink สัมพัทธ์: อ่านมันเป็นอะไรบางอย่างเช่น "ขึ้นโฟลเดอร์จากนั้นไปที่ 'เรียกใช้' แล้วไปที่ 'resolvconf' แล้วไปที่ไฟล์ 'resolv.conf'" ฉันเดาว่าทำงานได้ทั้งสองวิธี แต่ทำไม hardcode เส้นทาง ถ้าคุณทำงานกับคอนเทนเนอร์ LXC (ที่ FS รูตอยู่ในโฟลเดอร์) ล่ะ? จากนั้นการเปิดลิงก์จากโฮสต์ LXC จะนำคุณไปยังไฟล์ที่ไม่ถูกต้องหากคุณใช้เส้นทางที่แน่นอน
Azendale

11

ตั้งแต่ Ubuntu 12.04 resolvconf เป็นส่วนหนึ่งของระบบพื้นฐาน คุณสามารถสร้าง symlink ที่ต้องการได้โดยการเรียกใช้

dpkg-reconfigure resolvconf

หรือทำสิ่งต่อไปนี้ในเทอร์มินัล

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

โปรดทราบว่าตั้งแต่ Ubuntu 12.10 resolvconf จะไม่ยกเลิกอีกต่อไปหาก /etc/resolv.conf ไม่ใช่ symlink มันพิมพ์ข้อความเตือน แต่สามารถปิดเสียงได้โดยใส่สาย

REPORT_ABSENT_SYMLINK=no

ใน / etc / default / resolvconf


ฉันสมมติว่าการทำdpkg-reconfigureคำสั่งเปลี่ยน/etc/resolv.confกลับเป็น symlink แม้ว่าไฟล์ปกติจะอยู่ที่/etc/resolv.conf? นอกจากนี้คุณต้องลบออก/etc/resolv.confก่อนที่จะทำln? ฉันพบข้อผิดพลาดในระบบของฉัน แต่แล้วอีกครั้งฉันไม่มีข้อผิดพลาดที่อธิบายไว้ในคำถามนี้เมื่อฉันลอง
Azendale

ใช่เรียกใช้ "dpkg-reconfigure resolvconf" การเปลี่ยนแปลง /etc/resolv.conf กลับสู่ symlink และหากมีไฟล์อยู่ที่นั่น มันบันทึกสำเนาของไฟล์ต้นฉบับที่ /etc/resolvconf/resolv.conf.d/original เป็นความคิดที่ดีที่จะลบ /etc/resolv.conf ก่อนที่จะวาง symlink ที่นั่น แต่ถ้าคุณใช้ "ln -nsf" คุณไม่จำเป็นต้องทำเช่นนั้น ฉันเพิ่งเปลี่ยนคำตอบเพื่อพูดว่า "ln -nsf" แทน "ln -s"
jdthood

0

rm -r resolv.conf
nano resolv.conf อยู่ในนั้น

nameserver 1.1.1.1

เนมเซิร์ฟเวอร์ 1.0.0.1

บันทึกด้วย ctrl + X

หลังจากนั้นทำ: sudo apt-get install openresolv

หลังจากนั้น: รีคอมพิวเตอร์มันจะทำงาน

ฉันใช้เวลา 4HRS ในการแก้ปัญหานี้มันจะทำงานได้อย่างแน่นอนถ้าคุณทำดี


1
ทำไมคุณถึงตะโกน
Pierre.Vriens
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.