Lo que hice
Instale qemu, qemu-arch-extra, qemu-user-static (AUR) en ArchLinux X86_64. systemd se encarga del binfmt, verificado desde /proc/sys/fs/binfmt_misc/
. Descargue el tarball ARM de ArchLinux desde su sitio web. El enlace directo es este
http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
. Extráigalo en una carpeta con sudo bsdtar -xpf
comando. Copie el
/usr/bin/qemu-aarch64-static
archivo en esa carpeta. Haz root con arch-chroot
.
En línea 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
En el entorno chroot, puedo hacer ping a cualquier dirección IP pero no puedo hacer ping a ningún host remoto (por ejemplo example.com
), es decir, la resolución de nombres no funciona.
/etc/resolv.conf
el archivo está lleno. ip
muestra las configuraciones correctas de las NIC. Entonces, ¿cómo puedo habilitar la resolución de nombres en ArchLinux ARM chroot? Probé el mismo procedimiento en Ubuntu X86_64 con chroot en Ubuntu AARCH64. Funciona.
Respuesta1
En primer lugar, no es necesario copiar
qemu-aarch64-static
enfolder
En segundo lugar, parece que
/proc/sys/fs/binfmt_misc/
está vacío. Debe completarse con el binario necesario.Para solucionarlo, puede utilizar el
binfmt-qemu-static
paquete de AUR que se encargará de ello por usted.Y finalmente, necesitasreiniciaro reiniciarsystemd-binfmt
Con esta configuración, funciona muy bien para mí y no tengo que hacer nada para obtener la resolución de nombres en el chroot.
En lugar dearco-chroot, se puede utilizar también:
systemd-nspawn --bind-ro=/etc/resolv.conf -D folder -M myFancyMachineName
El truco aquí es no usar --resolv-conf
el interruptor (ninguno de los dos funcionó para mí) sino usar una opción de enlace específica.