읽기 전용 Raspberry Pi에서는 ntp가 작동하지 않습니다.

읽기 전용 Raspberry Pi에서는 ntp가 작동하지 않습니다.

ntp(서비스)가 내 라즈베리 파이에서 시간을 올바르게 설정하지 않는 이유를 이해하는 데 어려움을 겪고 있습니다.

SD 카드를 저장하기 위해 파일 시스템을 읽기 전용으로 구성했지만 이전에는 작동했는데 지금은 ntp가 작동하지 않는 이유를 알 수 없는 것 같습니다.

로그에는 다음 메시지가 많이 표시됩니다.

ntpd[415]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
ntpd[415]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
ntpd[415]: error resolving pool 0.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 1.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 2.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 3.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 3.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 2.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 1.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 0.debian.pool.ntp.org: Temporary failure in name resolution (-3)

내 /etc/resolv.conf는 다음과 같습니다:

# Generated by resolvconf
nameserver 8.8.8.8
nameserver 192.168.1.22

해당 RPi에서 인터넷에 액세스할 수 있고, 풀 주소로 ping을 할 수 있고, Google에 ping을 할 수 있고, 적절하게 업데이트할 수 있습니다(rw에 다시 설치한 후)...

ntpdate 명령을 수동으로 실행할 수도 있으며 작동합니다!

$ sudo ntpdate -u 0.fr.pool.ntp.org 1.fr.pool.ntp.org
24 Nov 23:04:34 ntpdate[578]: step time server 129.250.35.250 offset 2418.621037 sec

그래, 여기서 머리카락을 뽑을 거야. NTP 서비스가 작동하지 않는 이유를 이해할 수 없습니다. 인터넷을 검색했는데 이 특별한 문제가 있는 사람은 없는 것 같습니다(모든 사람의 DNS는 다운되었지만 내 DNS는 작동합니다).

내 읽기 전용 설정은 다음과 같습니다.https://hallard.me/raspberry-pi-read-only/

어떤 아이디어가 있나요?

답변1

비슷한 문제에 직면하면서 이것을 발견했습니다.

문제는 이 systemd기능이 PrivateTmp읽기 전용 구성에서 작동하지 않는다는 것입니다.

  1. 반드시 설치하여 주시기 바랍니다 ntp.ntpdate
    sudo apt install -y ntp ntpdate
    
  2. /lib/systemd/system/ntp.service에게 복사/etc/systemd/system/ntp.service

    cp /lib/systemd/system/ntp.service /etc/systemd/system/ntp.service
    
  3. 을 열고 /etc/systemd/system/ntp.service주석 처리하세요 PrivateTmp=true.

    sudo nano /etc/systemd/system/ntp.service
    

이제 제대로 작동할 것입니다!

추가 단계로 이제 제안된 /var/lib/ntp대로 tmpfs설치했습니다 .여기

  1. 파일을 열고 끝에 /etc/fstab추가합니다 .tmpfs /var/lib/ntp tmpfs nosuid,nodev 0 0
    sudo nano /etc/fstab
    

내 경우에는 이것이 불필요하다고 생각했지만 읽기 전용 파일 시스템에서 실행하는 데 더 많은 통찰력을 제공할 것입니다.

답변2

마크 로저의 답변작동하지만 사용자가 재정의하는 것이 더 낫다고 생각합니다.

echo -e '[Service]\nPrivateTmp=false' > /etc/systemd/system/ntp.service.d/override.conf

그런 다음 다시 시작하거나 systemctl daemon-reload충분할 수도 있습니다.

관련 정보