我尝试使用 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