blog

Tech|WindowsとLinuxのデュアルブートセットアップが間違った時刻を表示するのを直す方法

WindowsとUbuntuやその他のLinuxディストリビューションをデュアルブートすると、2つのOSの間に時間差があることに気づくかもしれません。...

Oct 5, 2025 · 4 min. read
シェア

その他のLinuxディストリビューションを 場合、2つのオペレーティングシステム間の時間差に気づくかもしれません。

正しい時間が表示されます。しかし、Windowsに切り替えると、間違った時刻が表示されます。時々、状況は逆転し、Linuxは間違った時刻を表示し、Windowsは正しい時刻を表示します。

特におかしいのは、インターネットに接続しており、日付と時刻が自動的に使用されるように設定されている場合です。

ご心配なく!この問題を経験しているのはあなただけではありません。Linuxターミナルで以下のコマンドを使用することで、この問題を解決することができます:

  1. timedatectl set-local-rtc 1

繰り返しますが、ご心配なく。デュアルブートセットアップでタイムエラーが発生する理由を説明します。上記のコマンドでWindowsデュアルブート後のタイムエラー問題を解決する方法をお見せします。

デュアルブートでWindowsとLinuxが異なる時間を表示するのはなぜですか?

コンピュータには、システムクロックとハードウェアクロックの2つの主要なクロックがあります。

ハードウェアクロックは、RTC(リアルタイムクロック)またはCMOS/BIOSクロックとも呼ばれます。このクロックはオペレーティングシステムの外側、コンピュータのマザーボード上にあります。システムの電源を切っても動き続けます。

システムクロックは、オペレーティングシステム内で表示されるものです。

コンピュータの電源を入れると、ハードウェアクロックが読み込まれ、システムクロックの設定に使用されます。その後、システムクロックは時刻の管理に使用されます。タイムゾーンの変更など、オペレーティングシステムがシステムクロックに変更を加えると、この情報をハードウェアクロックに同期させようとします。

デフォルトでは、Linuxはハードウェアクロックに保存されている時刻をローカルタイムではなくUTCとみなします。一方、Windowsはハードウェアクロックに保存されている時刻をローカルタイムとみなします。問題はここから始まります。

例を挙げて説明しましょう。

私はコルカタのUTC+5:30のタイムゾーンにいます。インストール後、 Ubuntuのタイムゾーンを コルカタのタイムゾーンに設定すると、Ubuntuはこの時間情報をハードウェアクロックに同期させますが、LinuxではUTCでなければならないため、5:30のオフセットがあります。

コルカタのタイムゾーンの現在時刻が15:00だとすると、UTC時間は09:30ということになります。

システムをシャットダウンしてWindowsを起動すると、ハードウェアクロックにはUTC時刻が表示されています。しかし、Windowsはハードウェアクロックがローカルタイムを保存していると考えます。そのため、システムクロックを変更し、UTC時間をローカル時間として使用します。その結果、Windowsは実際の時刻より5:30早い09:30と表示します。

同様に、自動タイムゾーンと時刻ボタンを使ってウィンドウズで正しい時刻を設定すると、何が起こるかわかりますか?システム上に正しい時刻が表示され、この情報がハードウェアクロックに同期されます。

Linuxを起動すると、ハードウェア・クロックから時刻を読み取ります。これはローカル時刻ですが、LinuxはこれをUTC時刻だと思っているので、システム・クロックに5:30のオフセットを加えます。これでLinuxは20:30と表示し、実際の時刻より5:30遅れた時刻になります。

デュアルブートにおける時差の問題の根本的な原因を理解したところで、次はそれを解決する方法を見ていきましょう。

Linuxのデュアルブート設定でWindowsが不正な時刻を表示する問題を修正

これには2つの方法があります:

  • WindowsにハードウェアクロックをUTC時間として使用させる方法
  • Linuxがハードウェアクロックをローカル時間として使用するようにします。

Linuxの方が変更しやすいので、2番目の方法をお勧めします。

Ubuntuや他のほとんどのLinuxディストリビューションはsystemdを使っているので、timedatectlコマンドを使って設定を変更できます。

あなたがしたいことは、ローカルタイムとしてハードウェアクロックを使用するようにLinuxシステムに指示することです。これは set-local-rtc オプションで実行できます:

  1. timedatectl set-local-rtc 1

下図のように、RTCは現地時間を使用するようになりました。

Windowsを起動すると、ハードウェアクロックはローカルタイムとして扱われます。Linuxで起動すると、LinuxシステムはハードウェアクロックがUTCではなくローカルタイムを使用していることを知っているので、このタイムオフセットを追加しようとはしません。

LinuxとWindowsのデュアルブート時のタイムラグの問題を解決します。

RTCがローカルタイムを使用していないという警告が表示されます。デスクトップのセットアップでは、何の問題も起こらないはずです。少なくとも、私は問題を思いつきません。

Read next