デュアルブートでクロック時間がオフになっています


303

デュアルブートシステムWindows XP ProおよびUbuntu 12.04。

正しい時間に設定されたBIOSと、米国東部時間に設定されたUbuntuがあります。Ubuntuが起動し、時間が-4時間ずれます。Ubuntuで時刻を修正すると、Windows XPで起動したときに時刻が+ 4時間ずれます。

これは、12.04の新規インストールです。Ubuntuを再インストールする前にこの問題はありませんでした。

回答:


265

https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts

複数のブートシステムの時間の競合

オペレーティングシステムは、マザーボードにあるハードウェアクロックで時間を保存および取得するため、システムに電力が供給されていないときでも時間を追跡できます。ほとんどのオペレーティングシステム(Linux / Unix / Mac)はデフォルトでハードウェアクロックの時刻をUTCとして保存しますが、一部のシステム(特にMicrosoft Windows)はハードウェアクロックの時刻を「ローカル」時刻として保存します。デュアルブートシステムでは、両方のシステムがハードウェアクロックを異なる方法で表示する場合、これにより問題が発生します。

UTCとしてハードウェアクロックを使用する利点は、タイムゾーン間を移動するとき、またはUTCにDSTまたはタイムゾーンオフセットがないため、夏時間(DST)が開始または終了するときにハードウェアクロックを変更する必要がないことです。

現地時間を使用するようにLinuxを変更することは、UTCを使用するようにWindowsを変更するよりも簡単で信頼性が高いため、デュアルブートLinux / Windowsシステムは現地時間を使用する傾向があります。

Intrepid(8.10)以降、UTC = yesがデフォルトです。

WindowsでUTCを使用する

注:この方法は、当初Windows VistaおよびServer 2008ではサポートされていませんでしたが、Vista SP2、Windows 7、Server 2008 R2、およびWindows 8 / 8.1で復活しました。

MS Windowsにハードウェアクロックからの時間をUTCとして計算させるため。

次の内容でWindowsTimeFixUTC.regという名前のファイルを作成し、それをダブルクリックして内容をレジストリにマージします。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

注: Windows Timeサービスは、シャットダウン時に上記のレジストリ設定に関係なくRTCにローカル時間を書き込むため、このコマンドでWindows Timeサービスを無効にするのが便利です(Windowsでサードパーティの時間を使用しているときに時間同期が必要な場合)同期ソリューション):

sc config w32time start= disabled

変更の取り消し上記のように
、次の内容のファイルを作成し、ダブルクリックして元の変更にマージできます。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=-

Windowsタイムサービスが無効になっている場合は、次のコマンドで再度有効にします。

sc config w32time start= demand

Linuxで「ローカル」時間を使用する

Ubuntuシステムに、ハードウェアクロックが「ローカル」時間に設定されていることを通知するには:

Ubuntu 15.04以前のシステム(Ubuntu 14.04 LTSなど):

  1. 編集する /etc/default/rcS
  2. 次のセクションを追加または変更します

    # Set UTC=yes if your hardware clock is set to UTC (GMT)
    UTC=no
    

Ubuntu 15.04システム以上(Ubuntu 16.04 LTSなど):

  1. ターミナルを開き、次のコマンドを実行します

    timedatectl set-local-rtc 1
    

53
ああ、主よ。ハードウェアクロックで現地時間を使用するのに十分なほど愚かだった思えません。どうしてそんなことをするの?
イオノ

20
@twome。なぜなら、MS-DOSの初期にはネットワーキングの方法があまりなく、タイムゾーンを移動するためにPCを移動することは一般的ではなかったからです。(そして、その歴史を考慮しても、それはまだ最高の動きではありませんでした)。
ジョンハンナ14

9
@twomeはハードウェアクロックがユニバーサルのままであることには同意しますが、タイムゾーン情報を保持しないため、問題はほとんどありません。A)BIOS / UEFIには、自動起動/スリープタイマーなどのさまざまな機能があります。それらのトリガーの時間を設定します。少なくとも平均的なユーザーにとっては、これらの時間をUTCで設定するのは奇妙です。B)ジョンが上で述べたように、後方互換性の理由。
Shahriyar Imanov

5
Windows PowerShellのでは上記のレジストリプロパティを更新するには、このコマンドを実行します New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -PropertyType DWord -Value 00000001
アナトリーミロノフ

6
テキストを読み飛ばす人は、両方ではなく、一方のOSの設定を変更するだけで済みます。
アレクサンドル・レボ

67

systemdベースのバージョン(15.04以降)で、BIOSクロックをUTCではなく現地時間に設定するには、timedatectlコマンドを使用する必要があります。Arch Wikiによると:

コマンドラインを使用して、ハードウェアクロック時間標準を設定できます。使用する設定を確認するには、次の手順を実行します。

$ timedatectl | grep local

ハードウェアクロックは、timedatectl コマンドで照会および設定できます。ハードウェアクロック時間標準をローカル時間に変更するには、次を使用します。

# timedatectl set-local-rtc 1

UTCのハードウェアクロックに戻したい場合は、次のようにします。

# timedatectl set-local-rtc 0

4
Ubuntu 16.10では、「hwclock --systohc --localtime」の実行に役立ちました。これにより、「ローカル部分」が/ etc / adjtimeに書き込まれ、永続的になります。
user1050755

1
@ user1050755はtimedatectlコマンドの前、後、または代わりですか?
ナッシュ

36

あなたのタイムゾーンは東部で、現在はEDT(東部夏時間)です。EDTは、UTCから4時間を引いたもので、これはあなたが経験しているオフセットと同じです。

デュアルブートシステムでこれが発生する場合、通常、一方のオペレーティングシステムはハードウェアクロックが現地時間を追跡し、他方のオペレーティングシステムはハードウェアクロックがUTCを追跡していると見なします。

あなたの場合、あなたのハードウェアクロックはおそらく現地時間に設定されており、そして:

  • Windowsは現地時間を使用するように設定されており、これは(時間設定が与えられていれば)正しいです。
  • UbuntuはUTCを使用するように設定されていますが、これは(時間設定が与えられた場合)正しくありません

Ubuntuシステムで時間を手動または自動でリセットするだけの場合、Windowsでは間違っているため、これは良い解決策ではありません。

代わりに、おそらく、ハードウェアクロックタイムをローカルタイムとして扱うようにUbuntu再構成するのが最善の解決策です(Windowsの構成とハードウェアのクロック時間はそのままにしておくことができます)。

これを行うには、/etc/default/rcSrootとして編集し、次のものがあることを確認しますUTC=no

  1. Alt+を押しF2ます。

  2. 入力してgksu gedit /etc/default/rcSを押しEnterます。

  3. あなたはおそらくこれを見るでしょう:

    # assume that the BIOS clock is set to UTC time (recommended)
    UTC=yes
    
    • 行う場合は、に変更UTC=yesUTC=noます。(または、コメントを追加する場合は、コメントを追加しますUTC=no # changed to accommodate Windows system#文字の後の行にあるものはすべてコメントであり、設定をより読みやすくするためにあります。)
    • そうでない場合は、任意のUTC=行を探してください。コメントが付いていない(つまり、#先頭にが付いていない)場合は、それに応じて変更します。コメントされ#ている場合は、先頭を削除してコメントを外し、「」と表示されていることを確認してくださいUTC=no
  4. ファイルを保存し、テキストエディターを終了します。

  5. 再起動して変更を適用し、両方のオペレーティングシステムで時間が正しく機能していることを確認します。

ソース: https : //help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time

(しかし、それは非常に一般的なことです。私はこの答えをあなたの状況に特に当てはめるために書きました。これはいくらかよくある問題です。)


これは、1つのUbuntuリリースから次のリリースにアップグレードするときにも発生する可能性があることに注意してください。私は上記の修正を行ってお勧めして、手動でも(systemdにして動作するように調整)この回答のように、あなたの時計を同期することができます。askubuntu.com/a/254846/139735は
starbeamrainbowlabs

これは受け入れられた答えであるはずです。Windowsをインストールして正常に実行してから、Ubuntuをインストールすると、クロックが大混乱になりました-構成を壊したのが明らかにLinuxの追加であった場合、Windowsの設定を変更する理由がわかりません。
Przemek D

13

/ etc / rcSの修正は、Win7 / Ubuntu 14.04x64のインストールでは機能せず、クロックGUIによる修正も行われませんでした。問題の根本はBIOS時間VS UTC時間であり、UTCの使用に関してはWindowsが苦痛なので、UTC + 0を使用するマップ上のポイントを選択しました(BIOS時間とUTC時間の間で変更はありません) 。

位置をレイキャビク(アイスランドの首都)に変更してみてください。出来上がり!Ubuntuの時刻は、BIOSの時刻に合わせて変更されます。


ハハ!驚くばかり。:DIは本当に私の場所を気にしません。これは2秒の修正でした。どうもありがとう。
ペールブルードット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.