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등의 작업을 할 수 있습니다.

한 가지 예외가 있습니다. 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와 이것이 예상되는 동작인지 여전히 이해하고 싶습니다 .

관련 정보