update 2018/06/16
検証OS: CentOS7.5
ハードウェアクロックとシステムクロックの関係について
Linuxの時計には、「ハードウェアクロック」と「システムクロック」という2つのクロックがある。
ハードウェアクロック..... マザーボードが持つ内部時計であり、BIOS クロックやCMOS クロックとも呼ばれている。
システムクロック....Linux がカーネル内部に持っている時計であり、OSの画面上で見るのはこのシステムクロックである。
Linux はシステムが起動する時に一度だけハードウェアクロックを参照し、その時刻をシステムクロックに設定する。
これは起動するたびに行われる、つまりハードウェアクロックの時刻が狂っていると
システムクロックも同様に狂ってしまう。
システムクロックの値がおかしいからと言って、システムクロックだけを設定しなおしても、
ハードウェアクロックを書き換えない限りは、再起動するたびにシステムクロックを再設定し直さなければなりません。
こんな時に使う
- 仕事で物理サーバを買ってきてラックにマウントする。
- PXEbootでOSを入れる
- 作業用のLANをつないだままAnsibleでアプリインストールやOS設定をする
- 商用のケーブルをつなぐ
ちょうど、2と3の間でやる作業。
システムクロックの時刻を設定する
- 現在のハードウェアクロックとシステムクロックの時刻を確認
# clock ; date
Tue 08 Apr 2014 04:39:28 AM JST -0.906231 seconds
Tue Apr 8 13:39:28 JST 2014
- 手動でシステムクロックを設定
オフライン環境などで、秒単位で正確でなくてもいいのでとりあえず時刻を合わせたい場合などに実施。
- 書式
# date MMDDhhmmYYYY
- 設定例
# date 011415192016
Thu Jan 14 15:19:00 JST 2016
その後、オンラインになったらntpdateコマンドでntpとシステムクロックを同期させる。
- システムクロックの時刻をハードウェアクロックに書き込む
システムクロック → ハードウェアクロック
# clock --systohc
ハードウェアクロックとシステムクロックの同期を確認
# clock ; date
Tue 08 Apr 2014 01:39:48 PM JST -0.687756 seconds
Tue Apr 8 13:39:48 JST 2014
※ サーバをrebootもさせてみて上記のように同期しているかを確認する。
・clockコマンドはhwclockにシンボリックが貼られているだけの様子
# ll /usr/sbin | grep clock
lrwxrwxrwx. 1 root root 7 Jan 8 05:05 clock -> hwclock
-rwxr-xr-x. 1 root root 45304 Nov 20 21:37 hwclock