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