Windows/Linuxデュアルブートすると時刻がずれる話

WindowsはJST(ローカルタイム)をシステム時刻(ハードウェア)に設定しようとするのに対し、LinuxはデフォルトではUTC(標準時)をシステム時刻に設定しようとする。結果、Windows/Linuxデュアルブート環境だと、Windowsで9時間遅れたように見える(もしくはLinuxで9時間進んだように見える)という時刻のずれが起こる。

解決方法は、A) 全部NTPクライアントに任せる、B) WindowsでUTC設定させる、C) LinuxでJST設定させる、のどれかになる。

A) 全部NTPクライアントに任せる場合、最近のOSだと標準でNTP同期するので一見なにもしなくてもよいように見えるけどそうでもない。時刻が離れすぎていると同期に失敗することもあるし、そもそも同期が完了するまでの間は時刻がずれたままとなる。Windowsの場合は同期したのを覚えていて、一回同期するとしばらくの間自動では同期しに行かない。頻繁にブート切り替えするならおすすめできない。

B) WindowsでUTC設定させる場合、レジストリ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation にDWORD型の名前RealTimeIsUniversalで値1を入れる。ただし、これをするとOS標準のNTP機能(「インターネット時刻」)が動かなくなるようだ。他の適当なNTPクライアントを持ってくる必要がありおすすめできない。

C) LinuxでJST設定させる場合、Redhat系だと /etc/sysconfig/clock に UTC=false (もしくはUTC=no)、Debian系だと /etc/default/rcS に UTC=no。ただし海外フォーラム情報によれば、サマータイムがあると切り替わりの前後でシステム時刻が飛ぶのでおかしくなることがある、とか。つまりおすすめできない。

以上をまとめると、デュアルブートはおすすめできないということになるんだけど、やはりオレのググり方は間違っているのだろうか。

ちなみに、9時間くらいずれててもそうは困らない場合が多いはずだけど、私の場合はTwitter Oauthの認証がすぐにコケて困りました。Tween/OpenTweenで認証が通らず、再認証しようとすると「認証できませんでした Err:Failed to access auth server.」が出て困った困った。ググると何例か「Microsoft Windows」の規定のプログラムをリセットする話が引っかかるのでのでずっとそっち系を疑っていたけど、なんてことはない、時刻のずれが問題だった。5分以上ずれるとコケるみたい。ちなみに、ActiveDirectory・・・というかKerberosも5分以上時刻がずれると認証がコケるみたい。

このブログ記事について

このページは、らるるが2015年6月26日 01:42に書いたブログ記事です。

ひとつ前のブログ記事は「「SQLアンチパターン」読んだ」です。

次のブログ記事は「最近の出来事」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0