私がしたこと
ArchLinux X86_64にqemu、qemu-arch-extra、qemu-user-static(AUR)をインストールします。 systemdはbinfmt、スレーブの確認を担当します/proc/sys/fs/binfmt_misc/
。ウェブサイトからArchLinux ARM Tarballをダウンロードしてください。直接リンクはこれです
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
(どちらも私には適していません)、特定のバインディングオプションを使用することです。