私がしたこと
ArchLinux X86_64 に qemu、qemu-arch-extra、qemu-user-static (AUR) をインストールします。systemd が から検証された binfmt を処理します/proc/sys/fs/binfmt_misc/
。ArchLinux ARM tarball をその Web サイトからダウンロードします。直接リンクは です
http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
。コマンドを使用してフォルダーに解凍しますsudo bsdtar -xpf
。
/usr/bin/qemu-aarch64-static
そのフォルダーにファイルをコピーします。 で chroot します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
ファイルが作成されます。NICip
の正しい構成が表示されます。では、chroot された ArchLinux ARM で名前解決を有効にするにはどうすればよいでしょうか。Ubuntu X86_64 で chroot された Ubuntu AARCH64 で同じ手順を試しました。うまくいきました。
答え1
qemu-aarch64-static
まず、コピーする必要はありませんfolder
次に、あなたのは
/proc/sys/fs/binfmt_misc/
空のようです。必要なバイナリを入力する必要があります。これを修正するには、
binfmt-qemu-static
AUR のパッケージを使用すると、自動的に処理されます。そして最後に、リブート、または再起動システムd-binfmt
この設定では、これは私にとっては非常にうまく機能し、chroot で名前解決を取得するために何もする必要はありません。
の代わりにarch-chroot、以下も使用できます:
systemd-nspawn --bind-ro=/etc/resolv.conf -D folder -M myFancyMachineName
ここでの秘訣は、--resolv-conf
スイッチを使用するのではなく (どちらも私の場合は機能しませんでした)、特定のバインド オプションを使用することです。