WindowsとUbuntuまたはその他のLinuxディストリビューションをデュアルブートする場合、2つのオペレーティングシステムの間に時間差があることに気付いたかもしれません。
Linuxを使用すると、正しい時刻が表示されます。しかし、Windowsを起動すると、間違った時刻が表示されます。場合によっては、その逆で、Linuxが間違った時刻を表示し、Windowsが正しい時刻を表示することがあります。
これは特に奇妙なことです。インターネットに接続していて、日付と時刻が自動的に使用されるように設定されているからです。
心配しないで!この問題に直面しているのはあなただけではありません。 Linuxターミナルで次のコマンドを使用して修正できます。
timedatectl set-local-rtc 1
繰り返しますが、心配しないでください。上記のコマンドが、デュアルブート後のWindowsでの間違った時間の問題をどのように修正するかを詳しく説明します。ただし、その前に、デュアルブートセットアップで時差が発生する理由を説明します。
WindowsとLinuxがデュアルブートで異なる時間を表示するのはなぜですか?
コンピューターには、システムクロックとハードウェアクロックの2つのメインクロックがあります。
RTC(リアルタイムクロック)またはCMOS/BIOSクロックとも呼ばれるハードウェアクロック。この時計は、オペレーティングシステムの外部、コンピューターのマザーボード上にあります。システムの電源をオフにしても、実行を続けます。
システムクロックは、オペレーティングシステム内に表示されるものです。
コンピュータの電源がオンになると、ハードウェアクロックが読み取られ、システムクロックの設定に使用されます。その後、システムクロックは時間を追跡するために使用されます。オペレーティングシステムがタイムゾーンの変更など、システムクロックに変更を加えると、この情報をハードウェアクロックに同期しようとします。
デフォルトでは、Linuxは、ハードウェアクロックに格納されている時刻が現地時間ではなくUTCであると想定しています。一方、Windowsは、ハードウェアクロックに保存されている時刻を現地時間と見なします。そこから問題が始まります。
例を挙げて説明しましょう。
あなたは私がUTC+5:30であるコルカタのタイムゾーンにいるのを見るでしょう。インストール後、Ubuntuのタイムゾーンをコルカタのタイムゾーンに設定すると、Ubuntuはこの時間情報をハードウェアクロックに同期しますが、Linuxではハードウェアクロック(RTC)をUTCにする必要があるため、オフセットは5:30です。
>コルカタのタイムゾーンの現在時刻が15:00であるとしましょう。これは、UTC時刻が09:30であることを意味します。
システムの電源を切ってWindowsを起動すると、ハードウェアクロックのUTC時刻(この例では09:30)になります。しかし、Windowsは、ハードウェアクロックが現地時間を保存していると見なします。したがって、システムクロック(15:00を表示しているはずです)を変更して、UTC時刻(09:30)を現地時間として使用します。したがって、Windowsは実際の時刻(この例では15:00)より5:30時間遅れている時刻として09:30を表示します。
繰り返しますが、自動タイムゾーンと時間ボタンを切り替えてWindowsで正しい時間を設定すると、何が起こるかわかりますか?これで、システムの正しい時刻(15:00)が表示され、この情報(画像の[時計の同期]オプションに注意)がハードウェア時計に同期されます。
Linuxを起動すると、現地時間(15:00)のハードウェアクロックから時刻が読み取られますが、LinuxはそれをUTC時刻と見なしているため、システムクロックに5:30のオフセットが追加されます。現在、Linuxは実際の時間より5:30時間進んでいる20:30の時間を示しています。
デュアルブートでの時差の問題の根本的な原因を理解したので、次は問題を修正する方法を確認します。
Linuxを使用したデュアルブートセットアップで間違った時間が表示されるWindowsの修正
この問題を処理するには、次の3つの方法があります。
- UbuntuとWindowsの両方で、インターネットを介して日付、時刻、タイムゾーンを自動的にチェックします
- Linuxでハードウェアクロックに現地時間を使用するようにする
- WindowsでハードウェアクロックにUTC時間を使用するようにする
そのうちの2つについて説明します。
方法1:OSに日付と時刻を自動的に設定する
この場合に発生するのは、オペレーティングシステム(WindowsまたはLinux)が1分間間違った時刻を表示し、インターネットに接続している場合は自動的に正しい時刻を設定することです。
Ubuntu Linuxシステムで日付と時刻を自動的にチェックするには、[システム設定]-> [日付と時刻]に移動し、両方のオプションを有効にします。
Windowsでも同様の設定変更を行う必要があります。
方法2:Ubuntuにハードウェアクロックに現地時間を使用させる
Linuxで変更を加える方が簡単なので、2番目の方法を使用することをお勧めします。
最近のUbuntuおよび他のほとんどのLinuxディストリビューションはsystemdを使用しているため、timedatectlコマンドを使用して設定を変更できます。
あなたがしていることは、ハードウェアクロック(RTC)に現地時間を使用するようにLinuxシステムに指示することです。これは、set-local-rtc
を使用して行います (RTCの現地時間を設定)オプション:
timedatectl set-local-rtc 1
下の画像でわかるように、RTCは現地時間を使用するようになりました。
これで、Windowsを起動すると、ハードウェアクロックが現地時間になります。これは、今回は実際に正しい時間です。 Linuxを起動すると、Linuxシステムは、ハードウェアクロックがUTCではなく現地時間を使用していることを認識します。したがって、今回はオフセットを追加しようとはしません。
これにより、デュアルブートでのLinuxとWindowsの時差の問題が修正されます。
RTCに現地時間を使用しないことに関する警告が表示されます。デスクトップ設定の場合、問題は発生しません。少なくとも、1つは考えられません。
私はあなたのために物事を明確にしたと思います。それでも質問がある場合は、下にコメントを残してください。