systemd-nspawn コンテナ内で実行すると、「接続タイムアウト」により hostnamectl が失敗します。

systemd-nspawn コンテナ内で実行すると、「接続タイムアウト」により hostnamectl が失敗します。

私はRaspberry Pi OSイメージを使用してsystemd-nspawn起動qemu-arm-staticし、ストックイメージをSDカードにフラッシュする前にカスタマイズを適用しています。

  • ホストはUbuntu 20.10(システムバージョン:246.6-1ubuntu1)です。
  • ゲストオペレーティングシステムはRaspberry Pi OSです(2020年8月、Debian Busterベース、システムバージョン:241)。

これは完璧に動作します。を使用してパッケージをインストールしたりapt-get、を使用してサービスを有効にするsystemctlなどの作業を行うことができます。

1つの例外があります。hostnamectlこれは、最新のLinuxディストリビューションでホスト名を設定するための好ましい方法です。

# hostnamectl
Failed to query system properties: Connection timed out

システムログに次の出力が表示されます。

Oct 26 20:08:05 raspberrypi dbus-daemon[219]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.23' (uid=0 pid=2300 comm="/usr/bin/qemu-arm-static /usr/bin/hostnamectl " label="unconfined")
Oct 26 20:08:05 raspberrypi systemd[1]: Starting Hostname Service...
Oct 26 20:08:05 raspberrypi systemd[2303]: systemd-hostnamed.service: Failed to set up network namespacing: Input/output error
Oct 26 20:08:05 raspberrypi systemd[2303]: systemd-hostnamed.service: Failed at step NETWORK spawning /lib/systemd/systemd-hostnamed: Input/output error
Oct 26 20:08:05 raspberrypi systemd[1]: systemd-hostnamed.service: Main process exited, code=exited, status=225/NETWORK
Oct 26 20:08:05 raspberrypi systemd[1]: systemd-hostnamed.service: Failed with result 'exit-code'.
Oct 26 20:08:05 raspberrypi systemd[1]: Failed to start Hostname Service.
Oct 26 20:08:30 raspberrypi dbus-daemon[219]: [system] Failed to activate service 'org.freedesktop.hostname1': timed out (service_start_timeout=25000ms)

次のコマンドを使用してイメージを起動します。

systemd-nspawn -b -i /dev/loop3p2

ホスト名の設定の回避策として、次の古典的な方法を使用します。

# echo my-pi > /etc/hostname
# echo "127.0.1.1 my-pi" >> /etc/hosts

hostnamectlこれはうまく機能しますが、メソッドが実行時に機能しない理由systemd-nspawnと、これが予想される動作であるかどうかを理解したいと思います。

関連情報