Arch-Linux

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

  • January 24, 2020

我做了什麼

在 ArchLinux X86_64 中安裝 qemu、qemu-arch-extra、qemu-user-static (AUR)。systemd 負責處理 binfmt,從/proc/sys/fs/binfmt_misc/. 從其網站下載 ArchLinux ARM 壓縮包。直接連結是這個 http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gzsudo 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

結果

在 chrooted 環境中,我可以 ping 任何 IP 地址但不能 ping 任何遠端主機(例如example.com),即名稱解析不起作用。 /etc/resolv.conf文件已填充。ip顯示正確的 NIC 配置。那麼,如何在 chrooted ArchLinux ARM 中啟用名稱解析?我已經在 Ubuntu X86_64 中嘗試了相同的過程,並將其 chroot 到 Ubuntu AARCH64。有用。

  • 首先,你不需要復製qemu-aarch64-staticfolder
  • 其次,你的似乎/proc/sys/fs/binfmt_misc/是空的。它需要填充所需的二進製文件。

為了解決這個問題,你可以使用binfmt-qemu-staticAUR 的包來為你解決這個問題。

最後,您需要重新啟動或重新啟動systemd-binfmt

有了這個設置,這對我來說效果很好,而且我不需要做任何事情來在 chroot 中進行名稱解析。

除了arch-chroot,還可以使用:

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

這裡的訣竅是不使用--resolv-confswitch (它們都不適合我),而是使用特定的綁定選項。

引用自:https://unix.stackexchange.com/questions/554452