O que eu fiz
Instale qemu, qemu-arch-extra, qemu-user-static (AUR) no ArchLinux X86_64. systemd cuida do binfmt, verificado em /proc/sys/fs/binfmt_misc/
. Baixe o tarball ArchLinux ARM de seu site. O link direto é este
http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
. Extraia-o em uma pasta com sudo bsdtar -xpf
comando. Copie o
/usr/bin/qemu-aarch64-static
arquivo para essa pasta. Faça chroot com arch-chroot
.
Na linha de comando:
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
Resultado
No ambiente chroot, posso executar ping em qualquer endereço IP, mas não consigo executar ping em nenhum host remoto (por exemplo example.com
), ou seja, a resolução de nomes não funciona.
/etc/resolv.conf
arquivo é preenchido. ip
mostra configurações corretas de NICs. Então, como posso ativar a resolução de nomes no ArchLinux ARM com chroot? Eu tentei o mesmo procedimento no Ubuntu X86_64 com chroot no Ubuntu AARCH64. Funciona.
Responder1
Em primeiro lugar, você não precisa copiar
qemu-aarch64-static
parafolder
Em segundo lugar, parece que o seu
/proc/sys/fs/binfmt_misc/
está vazio. Ele precisa ser preenchido com o binário necessário.Para consertar isso, você pode usar o
binfmt-qemu-static
pacote do AUR que cuidará disso para você.E, finalmente, você precisareinícioou reiniciesystemd-binfmt
Com esta configuração, funciona muito bem para mim e não preciso fazer nada para obter a resolução de nomes no chroot.
Em vez dearquichroot, pode-se usar também:
systemd-nspawn --bind-ro=/etc/resolv.conf -D folder -M myFancyMachineName
O truque aqui não é usar --resolv-conf
switch (nenhum deles funcionou para mim), mas usar uma opção de ligação específica.