AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

NTP service: n/a

RockyLinux 8.5 を minimal でインストールした際、 NTP 時刻同期を設定していなかった (グローバル疎通するイーサネット設定をしなかったため)。

で、 timedatectl を実行したところこのような表示になった。

[user@localhost ~]$ timedatectl
               Local time: 水 2022-01-05 04:22:09 JST
           Universal time: 火 2022-01-04 19:22:09 UTC
                 RTC time: 火 2022-01-04 19:22:09
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

NTP service: n/a とは……?

systemd-timesyncd

とりあえず何も考えず NTP 有効化してみる。

[user@localhost ~]$ sudo timedatectl set-ntp true
Failed to set ntp: NTP not supported

うーん?

ArchLinux によれば systemd に時刻合わせだけ実行する systemd-timesyncd というのがあるらしく、 systemd 213 以降であれば利用できるらしい。

wiki.archlinux.jp

[user@localhost ~]$ sudo dnf list systemd-timesyncd
メタデータの期限切れの最終確認: 0:32:56 時間前の 2022年01月05日 04時06分58秒 に実施しました。
エラー: 表示するための一致したパッケージはありません

ないやんけ! 有効化されてないリポジトリかと思って ftp.riken.jp の packages 以下を掘りまくったりしたけど、結局みつからず。

chrony を使う

結局解決方法はこれ。

事前に調べた際、systemd-timesyncd の conflict に ntpd chrony があるようだったので、 systemd のバージョンも相まって chrony を利用するという考えが完全に頭から抜けていた。

大本である RHEL のドキュメントにはこう書いてある。

Red Hat Enterprise Linux 8 は、chronyd デーモンを使用して NTP を実装します。chronyd は chrony パッケージから利用できます。詳細は「Chrony スイートを使用した NTP の設定」を参照してください。

access.redhat.com

というわけで実践してみる。

[user@localhost ~]$ sudo dnf -y install chrony
[user@localhost ~]$ timedatectl
               Local time: 水 2022-01-05 04:44:28 JST
           Universal time: 火 2022-01-04 19:44:28 UTC
                 RTC time: 火 2022-01-04 19:44:28
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no
[user@localhost ~]$ sudo timedatectl set-ntp true
[user@localhost ~]$ timedatectl
               Local time: 水 2022-01-05 04:44:55 JST
           Universal time: 火 2022-01-04 19:44:55 UTC
                 RTC time: 火 2022-01-04 19:44:56
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

できた、 chronyd自動起動するので少し待てば同期されるはず。

[user@localhost ~]$ timedatectl
               Local time: 火 2022-01-04 19:50:08 JST
           Universal time: 火 2022-01-04 10:50:08 UTC
                 RTC time: 火 2022-01-04 19:50:07
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

無事同期しましたね。 参照先 NTP サーバの設定は国内の ntp.nict.jp とかにしたほうがいいかもですが、そのあたりは各自のお気持ちで設定してもろて。

ちなみに

installati.one

こういう記事があるので、 CentOS8 では利用できたのかもしれない。