chroot された ArchLinux ARM では名前解決が機能しない

chroot された ArchLinux ARM では名前解決が機能しない

私がしたこと

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-staticAUR のパッケージを使用すると、自動的に処理されます。

    そして最後に、リブート、または再起動システムd-binfmt

この設定では、これは私にとっては非常にうまく機能し、chroot で名前解決を取得するために何もする必要はありません。

の代わりにarch-chroot、以下も使用できます:

systemd-nspawn --bind-ro=/etc/resolv.conf -D folder -M myFancyMachineName

ここでの秘訣は、--resolv-confスイッチを使用するのではなく (どちらも私の場合は機能しませんでした)、特定のバインド オプションを使用することです。

関連情報