上次我从 Live USB chroot 到我旧的坏掉的系统时,我无法连接到互联网。在这种情况下教程,我读到我应该将 OpenDNS 添加到我的/etc/resolv.conf
如果我使用 DHCP。
DHCP(或 chroot)如何影响我的 DNS?
DHCP 不就是路由器给我分配 IP 的一种方法吗?为什么我可以通过 Live USB 正常连接到互联网,却chroot
必须添加新的 DNS?
答案1
DHCP 不就是路由器给我分配 IP 的唯一方式吗?
不,这也是路由器向您提供额外信息的方式 - 网关 IP、DNS 服务器 IP、默认域名、时间服务器 IP 等等。
为什么我可以从 Live USB 正常连接到互联网,但在 chroot 中我必须添加新的 DNS?
Linux 将 DNS 服务器地址存储在一个文件中。由于 chroot 会改变程序查看文件路径的方式,这意味着它们会在该/etc/resolv.conf
路径上找到不同的文件,这意味着它们可能会找到存储在那里的不同地址。
(你的 DHCP 客户端对你的 chroot 一无所知,它只更新主要的 /etc/resolv.conf
文件 - 它无法搜索和更新全部可能的文件。
一种常见的解决方法是链接(绑定)“内部”路径,使其引用相同的“外部”文件。例如,您可以在 chroot 到 /mnt 之前执行此操作:
mount --bind /etc/resolv.conf /mnt/etc/resolv.conf
(当然,稍后您必须先卸载它,系统才会允许您卸载 /mnt。)