ルート指定されたArchLinux ARMでは、名前解決は機能しません。

ルート指定されたArchLinux ARMでは、名前解決は機能しません。

私がしたこと

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ファイルが記入されました。ipNICの正しい設定を表示します。それでは、ルートを指定した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(どちらも私には適していません)、特定のバインディングオプションを使用することです。

関連情報