名稱解析在 chroot 的 ArchLinux ARM 中不起作用

名稱解析在 chroot 的 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 (它們都不適合我),而是使用特定的綁定選項。

相關內容