NTPの設定するにはtimedatectlを使う. NTPが有効になっているかはtimedatectl statusで確認できる.

timedatectl status
               Local time: Sun 2025-01-05 01:03:55 JST
           Universal time: Sat 2025-01-04 16:03:55 UTC
                 RTC time: Sat 2025-01-04 16:03:55
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

set-ntp trueでシステムクロックをリモートのNTPサーバーと同期させる。 システム起動のたびにシステムクロックはハードウェアクロック(リアルタイムクロック)の内容で初期化される。

sudo timedatectl set-ntp true

リアルタイムクロック(RTC)はコンピュータ内蔵の電源を切っても維持し続ける時計である. ハードウェアとして内蔵しているためハードウェアクロックと呼ばれておりこれらは同じ意味である. 集積回路(IC)上で機能することからCMOSクロックともいう(CMOSは集積回路として良く使われているため)。

NTPサーバーから取得した時刻と同期したシステムクロックを,ハードウェアクロックに同期させる。

hwclock -u -w

ハードウェアクロックには通常タイムゾーンや夏時間の適用有無(DST)の情報は持たない。 起動時システムクロックの初期値として参照されるときにローカルタイムとして扱うのかUTC(Coordinated Universal Time)として扱うのかは/etc/adjtimeファイルの内容によって決められる。 このファイルはhwclock -wコマンドでハードウェアクロックを書き換えるとき(上記のコマンド実行時)に作成または更新される。 ここでは同時に-uオプションを指定しているので/etc/adjtimeにはハードウェアクロックをUTCとして扱うことが指定される。 タイムゾーンへの依存や夏時間(DST)の切替の問題をハードウェアクロックと切り離しておくためにもハードウェアクロックはUTCとして扱った方が良い。 hwclockコマンドの詳細は[hwclock(8)][hwclock(8)]で確認できる。