web-dev-qa-db-ja.com

デュアルブートでクロック時間がオフ

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

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

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

300
Bill Walden

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タイムサービスは、シャットダウン時の上記のレジストリ設定に関係なく、RTCにローカル時間を書き込むため、便利です。このコマンドでWindowsタイムサービスを無効にするには(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
    
264
Eric Carvalho

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

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

$ timedatectl | grep local

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

# timedatectl set-local-rtc 1

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

# timedatectl set-local-rtc 0
66
muru

タイムゾーンは Eastern で、現在はEDT(Eastern Daylight Time)です。 EDTは UTC マイナス4時間です。これは、発生しているオフセットと同じです。

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

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

  • Windowsはローカル時間を使用するように設定されており、これは(時間設定が与えられている場合)correctです。
  • UbuntuはUTCを使用するように設定されています。これは(時間設定が与えられた場合)incorrectです。

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

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

これを行うには、/etc/default/rcSをルートとして編集し、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

(しかし、これは非常に一般的なことです。私はこの答えをあなたの状況に特に適用するために書きました。これはやや一般的な問題です。)

36
Eliah Kagan

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

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

13
OpensourceFool