私は最近同じ問題に直面しましたが、これが私がそれを修正した方法です。両方の OS で少し変更を加える必要があります。
最初は Linux から始めました。以下のコマンドを root として実行してください。
ntpdate pool.ntp.org
正しく設定されていない場合、これにより時間が更新されます。
次に、このコマンドでハードウェア クロックを UTC に設定します。
hwclock --systohc --utc
ソース
Windows を起動し、次のレジストリを追加します。メモ帳で以下のコードを使用して .reg ファイルを作成するだけです。保存して実行してください。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
ソース
次回の起動以降、両方の OS が正しい時刻を表示します。
どちらも間違っていませんが、UTC を使用する方がより適切です。 RTC にはタイム ゾーンがありません。それはただの馬鹿げた壁掛け時計です。ローカル タイム ゾーンが DST を尊重している場合 (DST にはさまざまな種類があり、ルールは任意に変更されます)、年に 2 回、DST を変更する必要があります。 OSはあなたのためにそれを行いますが、RTCがUTCの場合、OSはとにかくUTC->ローカル変換を行います-なぜ時計をいじるのですか?さらに、DST の「フォールバック」移行中、RTC は現在時刻を通知できません!午前 1 時 30 分 (CDT または CST) ですか?
どうやら、Windows 8 は RTC の UTC をサポートしているようです。 Windows 7 でもできましたが、問題がありました。
人々が BIOS クロックを手動で設定したとき、これに対するより良い議論がありましたが、現在はサーバーベースの時間がはるかに普及しています.
通常、Linux システムでは RTC (リアルタイム クロック) が UTC に設定されており、ローカル時間への変換はタイム ゾーン データと TZ
に基づいてユーザー空間で行われます。 環境変数。これは、システム RTC を単調に増加させ続け、後でタイム ゾーン マジックを適用するため、「それほど悪くない」ことです。システム RTC は現地時間に設定されます)。 Ken が指摘したように、RTC 自体にはタイム ゾーンの概念はなく、時間だけです。
お気づきのように、RTC が local に設定されていることを一般的に期待する Microsoft ファミリのオペレーティング システムなど、通常はそのように動作しないシステムでデュアル ブートを行うと、問題が発生します。 時間。はい、Windows NT (実際には NT 4 までさかのぼると思います) できます UTC に設定された RTC で動作しますが、少なくとも最後に見たところ、実際にはサポートされていない構成であり、いくつかの注意事項がありました。
あなたの場合の簡単な解決策は、おそらくRTCを現地時間に設定し、RTCが現地時間に設定されていることをLinuxシステムに伝えることです(これを行う正確な仕組みはディストリビューションとリリースバージョンによって異なりますが、明らかにUbuntuでは UTC=no
/etc/default/rcS 内)、次にオペレーティング システムを構成して、1 つ そのうちの 1 つ (他のすべてに表示される時刻は、起動して修正する機会が得られるまで、年に 2 回不正確になるため、最も頻繁に使用するものが望ましい) は、夏時間の変更を処理します。そして、シングル ユーザー システムで管理できるはずの欠点を受け入れます。
あなたもできる Windows 側でタイム ゾーンとして UTC を使用するように設定し、Windows での自動夏時間変更をオフにし、Linux で RTC を UTC に設定し、慣例に従って変換された時刻を表示するように設定します。ただし、これにより、Windows が日付と時刻を UTC で表示することになり、これは本当に必要なものではない可能性があります。 UTC からせいぜい 3 時間ずれている私たちヨーロッパ人にとっては大きな問題ではありませんが、米国ではより大きな問題になる可能性があります。これは、Windows をたまにしか使用せず、主な OS が Linux またはその他の RTC-UTC 対応 OS である場合、より現実的なオプションです。