내가 뭘 한거지
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.gz
. 명령을 사용하여 폴더에 추출합니다 sudo bsdtar -xpf
. 파일을
/usr/bin/qemu-aarch64-static
이 폴더에 복사하세요. .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 환경에서는 모든 IP 주소에 대해 ping을 수행할 수 있지만 원격 호스트(예: example.com
)에는 ping을 수행할 수 없습니다. 즉, 이름 확인이 작동하지 않습니다.
/etc/resolv.conf
파일이 채워졌습니다. ip
NIC의 올바른 구성을 표시합니다. 그렇다면 루트가 지정된 ArchLinux ARM에서 이름 확인을 활성화하는 방법은 무엇입니까? Ubuntu X86_64에서 동일한 프로세스를 시도하고 Ubuntu AARCH64로 루트를 변경했습니다. 효과가있다.
답변1
qemu-aarch64-static
첫째, 다음 위치에 복사할 필요가 없습니다.folder
둘째, 당신의
/proc/sys/fs/binfmt_misc/
것이 비어있는 것 같습니다. 필수 바이너리로 채워져야 합니다.binfmt-qemu-static
이 문제를 해결하려면 AUR의 패키지를 사용하여 문제를 해결할 수 있습니다 .마지막으로, 당신은 필요합니다재시작또는 다시 시작systemd-binfmt
이 설정을 사용하면 완벽하게 작동하며 chroot에서 이름 확인을 얻기 위해 아무 것도 할 필요가 없습니다.
바꾸다아치형 루트, 다음을 사용할 수도 있습니다.
systemd-nspawn --bind-ro=/etc/resolv.conf -D folder -M myFancyMachineName
여기서 중요한 점은 스위치를 사용하는 것이 아니라 --resolv-conf
(둘 중 어느 것도 나에게 적합하지 않음) 특정 바인딩 옵션을 사용하는 것입니다.