Warum muss ich bei der Verwendung von chroot DNS angeben?

582
Qback

Letztes Mal konnte ich keine Verbindung zum Internet herstellen, als ich von Live USB zu meinem alten kaputten System chrootete . In diesem Lernprogramm muss ich Open DNS hinzufügen, wenn ich DHCP verwende ./etc/resolv.conf

Wie beeinflusst DHCP (oder Chroot) meinen DNS?

Ist DHCP nicht nur die Art, wie mein Router mir IP gibt ? Warum kann ich normalerweise eine Verbindung zwischen Live USB und Internet herstellen, während ich in chroot neue DNS hinzufügen muss ?

0

1 Antwort auf die Frage

2
grawity

Ist DHCP nicht nur die Art, wie mein Router mir IP gibt?

Nein, es ist auch die Art und Weise, wie Ihr Router Ihnen zusätzliche Informationen gibt - Gateway-IP, DNS-Server-IP, Standarddomänenname, Zeitserver-IP usw.

Warum kann ich normalerweise eine Verbindung zwischen Live USB und Internet herstellen, während ich in chroot neue DNS hinzufügen muss?

Linux speichert die DNS-Serveradresse in einer Datei. Da chroot ändert, wie Programme Dateipfade sehen, bedeutet dies, dass sie eine andere Datei am /etc/resolv.confPfad finden, was bedeutet, dass sie möglicherweise eine andere Adresse finden, die dort gespeichert ist.

(Ihr DHCP-Client weiß nichts über Ihre Chroots und aktualisiert nur die Hauptdatei /etc/resolv.conf - er kann nicht alle möglichen Dateien suchen und aktualisieren .)


Eine häufige Problemumgehung besteht darin, den "inside" -Pfad so zu verknüpfen (bind), dass er auf dieselbe "Outside" -Datei verweist. Sie können dies beispielsweise tun, bevor Sie nach / mnt wechseln:

mount --bind /etc/resolv.conf /mnt/etc/resolv.conf 

(Natürlich müssen Sie dies später wieder beenden, bevor das System Sie / mnt freigeben kann.)

Wenn es sich bei Ihrer `resolv.conf 'um einen Symlink handelt (oder Sie nicht wollen, dass er mit dem Original übereinstimmt), verwenden Sie` cp -L /etc/resolv.conf / path / to / etc`. ErikF vor 5 Jahren 0