はじめに
LinuxとWindowsをデュアルブートにしたとき、多くの場合で、時間がずれます。
これは、PC本体の時計(BIOSで「システム時間」として表示される)がWindowsではLocal Time、Linuxでは 協定世界時(UTC)に設定されているために起こります。
これを直します。
なにもしないと、どうなっているのか
Windows11を立ち上げて、「今すぐ同期」でタイムサーバーと同期した後の時間です。
2023年11月4日 8:12 です。
これは、Local Time(日本)です。
Local Time(日本)は、「UTC + 09:00」で計算されてます。
(画像のタイムゾーンのところ参照)
再起動して、BIOSでシステム時間を確認します。
8:13(秒省略) です。
BIOS表示までに1分ほどかかったため、その時間が加算されています。
Local Time(日本)が設定されてますね。
次にLinux(LMDE)を起動します。
立ち上げ直後は、BIOSで確認したシステム時間8:13+9時間+1分(起動にかかった時間)の
17:14が表示されました。
これは、Linuxでは、BIOSで確認した「システム時間」を協定世界時(UTC)として扱っているためです。
その後すぐに、ネットで時間合わせが行われ、
8:14とLocal Time(日本)になりました。
同時に、BIOSで表示されるシステム時間を、協定世界時(UTC)=Local Time(日本)-9時間の23:14に書き換えていると思われます。
この状態で、再起動してBIOSでシステム時間を確認すると、
システム時間は
23:16(秒省略)
協定世界時(UTC)に置き換わっているのが確認できました。
このままWindows11を起動すると、
Windows11の時間は、システム時間をLocal Timeとして扱っているので、
2023年11月3日 23:18
協定世界時(UTC)に置き換わってしまいます。
ここで、「今すぐ同期」をクリックすれば、
2023年11月4日 8:18
のLocal Timeにすぐ合わせてくれますが、面倒くさいですよね。
定期的に同期してくれるようですが、待っていられません。
どうやって直すか
Windows側を直す方法と、Linux側を直す方法がありますが、Linux側を直す方が簡単なので、そちらを紹介します。
Linuxを立ち上げて、ターミナルで「hwclock」コマンドで直します。
まずは、現状を確認しましょう。
ターミナルで、
sudo hwclock -v
と打ち込み、パスワードを入力します。
「Assuming hardware clock is kept in UTC time.」(画像中段赤枠)から、ハードウェアクロック=BIOSで確認できる「システム時間」をUTC Timeに保つとなっていることが分かります。
次に、Local Timeに設定を変更するため、
sudo hwclock -v -w -l
と打ち込みます。
「Assuming hardware clock is kept in local time.」(画像中段赤枠)と表示され、設定が変更されたことが確認できました。
再起動し、システム時間を確認すると、
8:22 Local Time
になってますね。
これでWindows11を立ち上げると、当然時間は、
8:23の Local Time
ですね。
一度設定してしまえばOKです。
コメント