chroot を使用するときに DNS を指定する必要があるのはなぜですか?

chroot を使用するときに DNS を指定する必要があるのはなぜですか?

前回、ライブUSBから古い壊れたシステムにchrootしたとき、インターネットに接続できませんでした。チュートリアル、OpenDNSを私の/etc/resolv.conf DHCPを使用する場合

DHCP (または chroot) は DNS にどのような影響を与えますか?

DHCP はルーターが IP を割り当てる唯一の方法ではないのですか? Live USB からインターネットに正常に接続できるのに、chroot新しい DNS を追加する必要があるのはなぜですか?

答え1

ルーターが IP を割り当てる方法は DHCP だけではないのですか?

いいえ、これはルータがゲートウェイ IP、DNS サーバ IP、デフォルトのドメイン名、タイム サーバ IP などの追加情報を提供する方法でもあります。

chroot では新しい DNS を追加する必要があるのに、Live USB からインターネットに正常に接続できるのはなぜですか?

Linux は DNS サーバーのアドレスをファイルに保存します。chroot はプログラムがファイル パスを認識する方法を変更するため、パスで別のファイルが見つかることになり/etc/resolv.conf、そこに保存されている別のアドレスが見つかる可能性があります。

(DHCPクライアントはchrootについて何も知らず、主要 /etc/resolv.confファイル – 検索や更新はできない全て可能なファイル。


一般的な回避策は、「内部」パスをリンク (バインド) して、同じ「外部」ファイルを参照するようにすることです。たとえば、/mnt に chroot する前にこれを実行できます。

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

(もちろん、後でシステムで /mnt をアンマウントできるようにするには、これをアンマウントする必要があります。)

関連情報