特殊な環境設定(時計絡み)

Macはハードウェアクロック(マザーボードの時計に記録されている時間)=UTCが普通、Windowsはハードウェアクロック=ローカルが普通なので、MacにBootCampでWindowsをインストールすると、

1.MacにWindowsをインストールする
2.Windowsで起動すると最初時計が9時間ずれる
3.そのうちNTPで時計が合う
4.Macで再起動する
5.時計が9時間ずれる
6.そのうちNTPで時計が合う
(6項についてはログインしたアカウントに管理者権限を持っていることが必要。無い場合はあれ?時計狂ってるよ!って状態になります)


というよく判らない状態になります。それだけであれば許容範囲かなぁと思いますが、その時問題になるのがWindows7のホームグループ。

どういう状態になるのかと言えば、ホームグループに参加できないという状態になります。不思議ですが接続する装置でハードウェアクロックが一致してないとダメみたい・・・なんですよね。
上記のように、NTPで同期させてみましたが、ホームグループへの参加でエラーになるという症状に悩まされました。



で、結論から書くと、ハードウェアクロックをUTCに設定して、Windows側でそのことを認識させるという方法が必要になります。もちろん、ホームグループに参加する全部のマシンで、です。


その為には、Windowsでレジストリキーを作成する必要があります。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001

そう言うことでMacにWindowsをインストールする場合(かつホームグループへの参加を行う場合)はネットワーク内の全てのWindowsマシンのハードウェアクロックをUTCに設定し、上記のレジストリエントリを作成する必要がある、という事になります。


ここにLinux(Ubuntu)が噛んでくると一層複雑なことになります。


Ubuntuの場合、デフォルトではハードウェアクロック=UTC、システムクロック=ローカル時間ですから、Macの場合と変わりありません。ただ、日本語のRemix版をインストールしている場合はハードウェアクロック=システムクロック=ローカル時間という設定になっているため、Windowsとの同居は問題ありませんが、MacOSとの同居は同様の問題が発生します。


この場合ですが、Ubuntuもハードウェアクロック=UTC、システムクロック=ローカル時間であるという設定にする必要があり、/etc/default/rcSのUTC=noとなっている行をUTC=yesとする必要があります。

逆にLinuxとWindowsのデュアルブートであれば、UTC=noのままで問題無く動作するという事になりますが、前述の通りMacはUTC=yesになっていますので、トリプルブートさせる場合はWindowsは上記したレジストリキーの追加、LinuxはUTC=no設定を施す事が必要です。
WindowsとLinuxのデュアルブート時に時計が狂う・・・しかも9時間キッカリという場合は上記の事項に気をつける必要があります。その場合は周囲の環境も含めWindows側で変更するのか、Linux側で変更するのかという事を考えなければなりません。

かなり、面倒ですが。


ハードウェアクロックの時間が何を指していると解釈するかはOSによって解釈がまちまちであるという事です。複数OSをインストールしてデュアルブート、トリプルブートをしてみたときに時計が狂うとか、Windowsのホームグループへの参加に問題があるという場合はこの辺りの設定が必要という事になります。



・・・という事で、Windows / Linux / MacOSX が混在する環境では時計の事も考えてあげる必要がありますね。



でも、何でWindowsってハードウェアクロック=ローカル時間が普通なんでしょうかね? ハードウェアクロック=UTC、ローカル時間はOSで補正するってほうが判りやすいように思えるのですが。



# 100歩譲って、各OSで時計の扱いについて説明不足ですよね。



※Linux=OSという書き方をしていますが、それが誤用という事は認識しています。ただ、一般的にLinuxの派生ディストリビューションは一般的にLinuxというOSである認識が一般的であるかと。設定についてはDebian系の設定になりますが、Ubuntuというディストリビューションに特化した記載をしています。本来正しくはUbuntu=OS、Linux=カーネルですね。同様にBSD!=UNIXですし、BSD OS=OSだし、FreeBSD=OSですが、派生でありOSの総称ではありません。BSD系と言われればそれらの総称ですが。。。