在 chroot 之后:apt-get 更新(错误且无法获取 - BootableFlashFromHarddiskInstall)

mer*_*ran 4 live-usb apt virtualbox chroot custom-distributions

我正在按照BootableFlashFromHarddiskInstall 教程从我当前的 Ubuntu 安装制作 Live CD。

VirtualBox 上的 Ubuntu 14.04。我以普通用户身份检查了虚拟机的互联网连接(如何检查 chroot 的互联网连接?)。

在这一步之后,问题开始了:

sudo chroot ${WORK}/rootfs /bin/bash
Run Code Online (Sandbox Code Playgroud)

执行此命令后什么也没发生或没有更改任何输出($LANG环境变量?目的是什么?):

LANG=
Run Code Online (Sandbox Code Playgroud)

apt-get 更新后

apt-get update
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

在此处输入图片说明

这是我的正常帐户的历史记录:

在此处输入图片说明

那么实际的问题是什么?

Chroot 没有连接到互联网吗?- 或者 - tr.archive.ubuntu.com 可能有问题?

sudo apt-get update以普通用户(mertyildiran)的身份检查过它正在工作。

但是在 chroot 中apt-get update- 或者 -sudo apt-get update它们都不起作用

编辑:

chroot 目录下的 /etc/resolv.conf:

在此处输入图片说明

mur*_*uru 9

在 chroot 中,很可能resolv.conf没有正确设置(它可能是一个不存在文件的符号链接,或者它可能是空的等等)。因此,设置 chroot 时的一个常见建议是复制主机的resolv.conf

mv chroot/etc/resolv.conf{,.bak}
cp /etc/resolv.conf chroot/etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

然后您可以恢复原始文件,如果它是一个正确的文件。

在许多现代系统上,resolv.conf是文件的符号链接/run,因为它由resolvconf. 在基于 Debian 的系统上,您始终可以使用以下命令重新创建链接:

sudo dpkg-reconfigure resolvconf
Run Code Online (Sandbox Code Playgroud)

  • 对于像我这样有点慢的人,你需要将 `chroot` 替换为适当的目录(比如 `/mnt`)才能使用命令。 (2认同)