VMware上のArchLinuxで時刻がずれる問題
VMware 上での Linux の時刻が起動するたびにずれているのでずっと不思議に思っていました。
いままで放置してきましたが、毎度 ntpdate で調整するのも面倒くさいので今日は何が原因か調べてみました。
今回、発生している問題は何故か現在時刻に+9時間されてしまうというものです。
なので時差に関する問題であると考えられます。
この問題は /etc/rc.conf で
HARDWARECLOCK="UTC" # または空白
を
HARDWARECLOCK="localtime"
としてやることで解決できます。
Linux では起動時に BIOS からの時刻を読みとってそのあとはOSが自前で時刻を管理し、終了時に BIOS に書き戻しているそうです。
原因は、OS としては UTC の時刻を終了時に書き戻してはいるものの、起動時に VMWare が UTC としてホスト側の現在時刻をそのまま BIOS に書きこんでしまっているためだと思われます。
VMWare のサスペンド機能を用いるとこれまた時刻がずれてしまうのですが良い方法があるといいなぁ。
[追記]
Hardware Clock はサスペンドしても正しい時刻であり続けるようなので
sudo crontab -e
として
*/1 * * * * /sbin/hwclock --hctosys
と書いてやればいいですね。
--hctosys オプションをつけて hwclock を実行すると Hardware Clock の値が System Time に読み込まれます。