19.18. ハードウェアクロック更新の設定

リアルタイムクロック (RTC) とも呼ばれるハードウェアクロックの更新には、システムクロックが使用できます。本セクションでは、これを実行する 3 つのアプローチを説明します。

即時ワンタイム更新

ハードウェアクロックの即時ワンタイム更新を行うには、root で以下のコマンドを実行します。

~]# hwclock --systohc
ブートごとの更新

ntpdate 同期ユーティリティー実行後にブートごとに毎回ハードウェアクロックが更新するようにするには、以下を実行します。

  1. 以下の行を /etc/sysconfig/ntpdate ファイルに追加します。

    SYNC_HWCLOCK=yes
  2. ntpdate サービスを root で有効にします。

    ~]# systemctl enable ntpdate.service

    ntpdate サービスは /etc/ntp/step-tickers ファイルで定義されている NTP サーバーを使用することに留意してください。

    注記

    仮想マシンの場合は、仮想マシン自体の次回起動時ではなく、ホストマシンの次回起動時にハードウェアクロックが更新されます。

NTP から更新

ntpd または chronyd サービスを使うと、システムクロックが更新されるたびにハードウェアクロックを更新することができます。

root として ntpd サービスを起動します。

~]# systemctl start ntpd.service

この動作を次回ブート後にも維持するには、サービスがブート時に自動的に起動するようにします。

~]# systemctl enable ntpd.service

または

root で chronyd サービスを起動します。

~]# systemctl start chronyd.service

この動作を次回ブート後にも維持するには、サービスがブート時に自動的に起動するようにします。

~]# systemctl enable chronyd.service

その結果、ntpd または chronyd がシステムクロックを同期するたびに、カーネルがハードウェアクロックを 11 分ごとに自動更新します。

警告

上記の 11 分モードは常に有効になっているわけではないので、このアプローチが常に機能するとは限りません。このため、ハードウェアクロックはシステムクロックの更新時に更新されるとは限りません。

ソフトウェアクロックがハードウェアクロックに同期しているかを確認するには、root として ntpdc -c kerninfo または ntptime コマンドを使用します。

~]# ntpdc -c kerninfo

以下のような結果になります。

pll offset:      0 s
pll frequency:    0.000 ppm
maximum error:    8.0185 s
estimated error:   0 s
status: 2001 pll nano
pll time constant:  6
precision:      1e-09 s
frequency tolerance: 500 ppm

または

~]# ntptime

以下のような結果になります。

ntp_gettime() returns code 0 (OK)
 time dcba5798.c3dfe2e0 Mon, May 8 2017 11:34:00.765, (.765135199),
 maximum error 8010000 us, estimated error 0 us, TAI offset 0
ntp_adjtime() returns code 0 (OK)
 modes 0x0 (),
 offset 0.000 us, frequency 0.000 ppm, interval 1 s,
 maximum error 8010000 us, estimated error 0 us,
status 0x2001 (PLL,NANO),
 time constant 6, precision 0.001 us, tolerance 500 ppm,

ハードウェアクロックがシステムクロックに同期しているかどうかを確認するには、出力の status 行を確認します。その行に unsync または UNSYNC という単語が含まれている場合は、ハードウェアクロックがシステムクロックと同期していません。

ハードウェアクロックがシステムクロックに同期しています。

status 0x2001 (PLL,NANO)

ハードウェアクロックがシステムクロックに同期していません。

status 0x41 (PLL,UNSYNC)

このページには機械翻訳が使用されている場合があります (詳細はこちら)。