我が家ではVirtualBoxにTinyCoreを入れて稼働させていますが、最近その時計が頻繁に狂うようになりました。
その狂い方は結構ハンパないもので、一週間も放置するとTinyCoreの時計は明日になってしまうくらいです。
いくら時代の先端を行きたいとはいっても、時間ばかり先に行かれても困るので、何とかすることにしました。
NTPで何とかする
症状としては、VirtualBox内のバーチャルマシンとして運用しているTinyCoreの時計が進んでしまう、というものです。
ホストマシン側の時計は特にずれていません。
色々調べてはみたものの、原因はいまいちよくわかりません。
そこで、対処療法ではありますがNTPを使うことにしました。
NTP (Network Time Protocol)はインターネット上で時刻の同期を行うために使われるプロトコルです。日本だとntp.nict.jpなどで時刻が提供されており、そこにコマンドで問い合わせを行うことによりマシンの時間を同期させることができます。
$ tce-load -wi ntp
$ sudo ntpdate ntp.nict.jp
今回はこのntpdateコマンドを定期実行させて時刻を同期するようにしました。
/var/spool/cron/crontabs/root
ファイルに以下のエントリを追加します。
59 */2 * * * /usr/local/bin/ntpdate ntp.nict.jp | logger -t ntpdate -p local0.info
ここでは、2時間ごとの59分(0時59分、2時59分、...)に、ntp.nict.jpに対してntpdateを発行し、結果はsyslogに出力しています。
ntpdateにはsyslogに出力するオプション(-s)があるのですが、私の環境ではsyslogdを入れ替えていたりしてうまくいかなかったので上記のようにしています。
この設定を行ってcrondを再起動(マシンを再起動でもよい)してコマンドが実行されたあとにsyslog (/var/log/messages など)をみると、次のようなログが吐かれていました。
Dec 12 20:50:23 tiny local0.info ntpdate: 12 Oct 20:50:23 ntpdate[10339]: step time server 133.243.238.243 offset -527.167427 sec
(赤字部分はあとで着色)
なんと2時間でマイナス500秒以上も調整されている! そりゃ次の日になってしまうわけだ。
そのうちもう少しきちんと見ないといけないかもしれませんが、まずはこれで。
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!