如何解析 chroot 中的主机名?

如何解析 chroot 中的主机名?

我尝试使用 chroot 修复损坏的 Ubunu 14.04。我所做的是从 USB 启动 Ubuntu,安装需要修复的原始系统,然后使用 chroot 更改为此系统:

sudo mount /dev/sdXY /mnt 
sudo mount -o bind /dev /mnt/dev 
sudo mount -o bind /sys /mnt/sys 
sudo mount -t proc /proc /mnt/proc 
sudo cp /proc/mounts /mnt/etc/mtab 
sudo chroot /mnt /bin/bash 

运行正常,但在chroot我无法访问互联网的环境中,因此apt无法解析主机名。我该怎么办?

ping www.askubuntu.com

也不起作用。

答案1

在较新的 Ubuntu 系统上,名称解析由 resolvconf 服务处理,/etc/resolv.conf 是指向 /run/resolvconf/resolv.conf 的符号链接。您可以在执行 chroot 命令之前将绑定挂载与其他绑定挂载一起添加到 /run 文件系统

sudo mount -o bind /run /mnt/run

这样 chroot 系统就可以获取主机系统的 DNS 设置,或者,一旦您进入 chroot 系统,就可以临时创建一个静态的 /etc/resolv.conf,其中包含您选择的名称服务器,例如

echo 'nameserver 8.8.4.4' | sudo tee -a /etc/resolv.conf

相关内容