Linux
archLinux
インストール
systemd
utc

日時の設定 - Arch Linuxの最小限インストール直後の作業(2)

日時の設定は、インストール時またはArch Linuxの最小限インストールの完了直後に行うべき作業のひとつです。

時刻の設定にあたっては、Arch LinuxなどのOSではシステムクロックとハードウェアクロックという2種類の時計を使われていることが前提知識となります。

システムクロックは、OSが動作している間だけ時を刻みます。OSがブートするときに、ハードウェアクロックの日時をもとにシステムクロックが設定され、OSがシャットダウンするときにはシステムクロックの日時がハードウェアクロックに設定されます。ハードウェアクロックは、小型電池などを電源にして、コンピューターの電源が落ちている間も時を刻みます。

システムクロックは、NTP(Net Time Protocol)によってインターネット上のサーバーと同期することで、日時を正確に保つことができます。

現在の日時の設定は、timedatectlコマンドで確認できます。

[root@archlinux ~]# timedatectl


実行結果

           Local time: Wed 2018-10-24 08:17:31 UTC

Universal time: Wed 2018-10-24 08:17:31 UTC
RTC time: Wed 2018-10-24 08:17:32
Time zone: UTC (UTC, +0000)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no

最小限インストール直後では、タイムゾーンが設定されていないため、日本時間と比べて9時間前にあたるUTC(協定世界時)の日時が表示されます。dateコマンドなどでも、UTCの日時が表示されます。

[root@archlinux ~]# date


実行結果

Wed Oct 24 08:17:50 UTC 2018


また、ハードウェアクロック(RTC: Real Time Clock)をローカルタイムにするかUTCにするかを設定するRTC in local TZは、通常はnoとなります。この設定は変更する必要はありません。Arch Linuxを含めたLinuxではハードウェアクロックはUTCに設定した方がトラブルが少ないとされています。詳細は、systemd環境におけるハードウェアクロック調整などを参照して下さい。


タイムゾーンの設定

timedatectlコマンドで、タイムゾーンを設定できます。


設定できるタイムゾーンの表示

timedatectl list-timezonesコマンドで設定できるタイムゾーンの一覧が表示されます。次のコマンドで、tokyoのタイムゾーンを表示できます。

[root@archlinux ~]# timedatectl list-timezones | grep -i tokyo


実行結果

Asia/Tokyo



タイムゾーンの設定

timedatectl set-timezoneコマンドでタイムゾーンを設定できます。次のコマンドで、タイムゾーンをAsia/Tokyoに設定します。

[root@archlinux ~]# timedatectl set-timezone Asia/Tokyo

設定後、日時の設定を確認します。

[root@archlinux ~]# timedatectl


実行結果

           Local time: Wed 2018-10-24 17:19:15 JST

Universal time: Wed 2018-10-24 08:19:15 UTC
RTC time: Wed 2018-10-24 08:19:16
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no

Local timeがUniversal timeの9時間後になります。dateコマンドなどでは、Local timeが出力されます。

[root@archlinux ~]# date


実行結果

Wed Oct 24 17:19:24 JST 2018



NTPサーバーとの同期の設定

OSがインターネットに接続している場合、次のコマンドでNTPサーバーとの同期を有効にできます。

[root@archlinux ~]# timedatectl set-ntp true

設定後、日時の設定を確認します。

[root@archlinux ~]# timedatectl


実行結果

           Local time: Wed 2018-10-24 17:21:06 JST

Universal time: Wed 2018-10-24 08:21:06 UTC
RTC time: Wed 2018-10-24 08:21:07
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

System clock synchronizedがyesとなり、NTP serviceがactiveとなります。

NTP serviceがactiveとなるまでには少し時間がかかります。inactiveと表示される場合は少し時間が経ってから再度timedatectlコマンドを実行してください。

インターネットに接続していない場合、NTPサーバーとの同期は有効にできません。先に、ネットワーク接続を設定してください。

また、NTPサーバーの設定などはネットワークの設定と一緒に行います。


参考資料


まとめ

今回実行したコマンドをまとめると、次のようになります。


  • timedatectl

  • timedatectl list-timezones

  • timedatectl set-timezone Asia/Tokyo

  • timedatectl set-ntp true