我尝试使用 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
Run Code Online (Sandbox Code Playgroud)
效果很好,但在chroot环境中我无法访问互联网,因此apt无法解析主机名。我应该做些什么?
ping www.askubuntu.com
Run Code Online (Sandbox Code Playgroud)
也不起作用。
ste*_*ver 29
在较新的 Ubuntu 系统上,名称解析由 resolvconf 服务处理,而 /etc/resolv.conf 是指向 /run/resolvconf/resolv.conf 的符号链接。在执行 chroot 命令之前,您可以将绑定安装与其他绑定安装一起添加到 /run 文件系统
sudo mount -o bind /run /mnt/run
Run Code Online (Sandbox Code Playgroud)
以便 chroot 系统获取主机系统的 DNS 设置,或者,一旦您进入 chroot 系统,临时创建一个静态的 /etc/resolv.conf,其中包含您选择的名称服务器,例如
echo 'nameserver 8.8.4.4' | sudo tee -a /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)