Почему я должен указывать DNS при использовании chroot?

498
Qback

В прошлый раз я не мог подключиться к Интернету, когда я переключился с Live USB на мою старую сломанную систему. В этом уроке я прочитал, что я должен добавить Open DNS к своему, /etc/resolv.conf если я использую DHCP .

Как DHCP (или chroot) влияет на мой DNS?

Разве DHCP не только способ, которым мой маршрутизатор дает мне IP ? Почему я могу нормально подключиться к Live USB к Интернету, а в chroot мне нужно добавить новый DNS ?

0

1 ответ на вопрос

2
grawity

Разве DHCP не только способ, которым мой маршрутизатор дает мне IP?

Нет, ваш маршрутизатор также дает вам дополнительную информацию - IP-адрес шлюза, IP-адрес DNS-сервера, имя домена по умолчанию, IP-адрес сервера времени и так далее.

Почему я могу нормально подключиться к Live USB к Интернету, а в chroot мне нужно добавить новый DNS?

Linux хранит адрес DNS-сервера в файле. Поскольку chroot изменяет способ, которым программы видят пути к файлам, это означает, что они найдут другой файл по /etc/resolv.confпути, что означает, что они, возможно, найдут другой адрес, хранящийся там.

(Ваш DHCP-клиент ничего не знает о ваших chroot, а только обновляет основной /etc/resolv.conf файл - он не может искать и обновлять все возможные файлы.)


Обычный обходной путь - связать (связать) «внутренний» путь так, чтобы он ссылался на тот же «внешний» файл. Например, вы можете сделать это перед привязкой к / mnt:

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

(Конечно, позже вам придется размонтировать это, прежде чем система позволит вам размонтировать / mnt.)

Если ваш `resolv.conf` является символической ссылкой (или вы не хотите, чтобы он совпадал с оригиналом), используйте` cp -L /etc/resolv.conf / path / to / etc`. ErikF 5 лет назад 0