
Was ich getan habe
Installieren Sie qemu, qemu-arch-extra, qemu-user-static (AUR) in ArchLinux X86_64. systemd kümmert sich um das binfmt, verifiziert von /proc/sys/fs/binfmt_misc/
. Laden Sie das ArchLinux ARM-Tarball von der Website herunter. Der direkte Link ist dieser
http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
. Extrahieren Sie es mit sudo bsdtar -xpf
dem Befehl in einen Ordner. Kopieren Sie die
/usr/bin/qemu-aarch64-static
Datei in diesen Ordner. Chroot mit arch-chroot
.
In der Befehlszeile:
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
Ergebnis
In der Chroot-Umgebung kann ich jede IP-Adresse anpingen, aber keinen Remote-Host (z. B. example.com
), d. h. die Namensauflösung funktioniert nicht.
/etc/resolv.conf
Die Datei ist gefüllt. ip
Zeigt die korrekten Konfigurationen der Netzwerkkarten an. Wie kann ich also die Namensauflösung in Chroot-ArchLinux ARM aktivieren? Ich habe dasselbe Verfahren in Ubuntu X86_64 mit Chroot in Ubuntu AARCH64 ausprobiert. Es funktioniert.
Antwort1
Erstens müssen Sie nicht kopieren
qemu-aarch64-static
infolder
Zweitens scheint Ihr Feld
/proc/sys/fs/binfmt_misc/
leer zu sein. Es muss mit der benötigten Binärdatei gefüllt werden.Um dies zu beheben, können Sie das Paket von AUR verwenden
binfmt-qemu-static
, das dies für Sie übernimmt.Und schließlich müssen Sie entwederNeustartoder starten Sie neusystemd-binfmt
Mit diesem Setup funktioniert es bei mir einwandfrei und ich muss nichts tun, um eine Namensauflösung im Chroot zu erhalten.
AnstattArch-Chroot, man kann auch verwenden:
systemd-nspawn --bind-ro=/etc/resolv.conf -D folder -M myFancyMachineName
Der Trick besteht hier darin, keinen Schalter zu verwenden --resolv-conf
(bei mir hat keiner von beiden funktioniert), sondern eine bestimmte Bindungsoption zu verwenden.