名称解析在 chrooted ArchLinux ARM 中不起作用

名称解析在 chrooted ArchLinux ARM 中不起作用

我做了什么

在 ArchLinux X86_64 中安装 qemu、qemu-arch-extra、qemu-user-static (AUR)。 systemd 负责 binfmt,从 验证/proc/sys/fs/binfmt_misc/。从其网站下载 ArchLinux ARM tarball。直接链接是这个 http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz。使用命令将其解压到文件夹中sudo bsdtar -xpf。将文件复制 /usr/bin/qemu-aarch64-static到该文件夹​​中。 chroot 与arch-chroot.

在命令行中:

sudo pacman -S qemu qemu-arch-extra
sudo yay -S qemu-user-static
sudo bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C folder
ls /proc/sys/fs/binfmt_misc/
sudo cp /usr/bin/qemu-aarch64-static folder/usr/bin
sudo arch-chroot folder

结果

在 chroot 环境中,我可以 ping 任何 IP 地址,但无法 ping 任何远程主机(例如example.com),即名称解析不起作用。 /etc/resolv.conf文件已填充。ip显示 NIC 的正确配置。那么,如何在 chrooted ArchLinux ARM 中启用名称解析?我在 Ubuntu X86_64 中尝试了相同的过程,并chroot到 Ubuntu AARCH64。有用。

答案1

  • 首先,你不需要复制qemu-aarch64-staticfolder

  • 其次,你的似乎/proc/sys/fs/binfmt_misc/是空的。它需要填充所需的二进制文件。

    要解决这个问题,您可以使用binfmt-qemu-staticAUR 中的软件包来解决这个问题。

    最后,您需要重启,或重新启动systemd-binfmt

通过这个设置,这对我来说非常有效,而且我不需要做任何事情来在 chroot 中获得名称解析。

代替拱形 chroot,也可以使用:

systemd-nspawn --bind-ro=/etc/resolv.conf -D folder -M myFancyMachineName

这里的技巧是不使用--resolv-confswitch (它们都不适合我),而是使用特定的绑定选项。

相关内容