お知らせ!! 「jpcmoh.myds.me」から「mohlog.com」へ変更しました
PR

Let’sNoteの中古という選択肢-その7 デュアルブートWindowsとLinuxの時間を合わせる 

アイキャッチ Clock Linuxをつかおう!!
記事内に広告が含まれています。
スポンサーリンク

はじめに

LinuxとWindowsをデュアルブートにしたとき、多くの場合で、時間がずれます。
これは、PC本体の時計(BIOSで「システム時間」として表示される)がWindowsではLocal Time、Linuxでは 協定世界時(UTC)に設定されているために起こります。
これを直します。

INFO

内容としては一般的に起こる問題で、Let'sNoteであるかどうかは関係ありません。

スポンサーリンク

なにもしないと、どうなっているのか

Windowsの時間

Windows11を立ち上げて、「今すぐ同期」でタイムサーバーと同期した後の時間です。
2023年11月4日 8:12 です。
これは、Local Time(日本)です。

Local Time(日本)は、「UTC + 09:00」で計算されてます。
(画像のタイムゾーンのところ参照)

BIOS システム時間

再起動して、BIOSでシステム時間を確認します。
8:13(秒省略) です。
BIOS表示までに1分ほどかかったため、その時間が加算されています。
Local Time(日本)が設定されてますね。

LMDE boot

次にLinux(LMDE)を起動します。

LMDE直後時間

立ち上げ直後は、BIOSで確認したシステム時間8:13+9時間+1分(起動にかかった時間)の
17:14が表示されました。
これは、Linuxでは、BIOSで確認した「システム時間」を協定世界時(UTC)として扱っているためです。

LMDE時間調整後

その後すぐに、ネットで時間合わせが行われ、
8:14Local Time(日本)になりました。
同時に、BIOSで表示されるシステム時間を協定世界時(UTC)=Local Time(日本)-9時間の23:14に書き換えていると思われます。

再起動

この状態で、再起動してBIOSでシステム時間を確認すると、

BIOS UTC

システム時間
23:16(秒省略)
協定世界時(UTC)に置き換わっているのが確認できました。

このままWindows11を起動すると、

Win UTC

Windows11の時間は、システム時間Local Timeとして扱っているので、
2023年11月3日 23:18
協定世界時(UTC)に置き換わってしまいます。

ここで、「今すぐ同期」をクリックすれば、

2023年11月4日 8:18
Local Timeにすぐ合わせてくれますが、面倒くさいですよね。
定期的に同期してくれるようですが、待っていられません。

スポンサーリンク

どうやって直すか

Windows側を直す方法と、Linux側を直す方法がありますが、Linux側を直す方が簡単なので、そちらを紹介します。

Linuxを立ち上げて、ターミナルで「hwclock」コマンドで直します。

Ubuntuでは使えない

"hwclock"コマンドは、Ubuntuでは使えません。その場合は、"timedatectl"コマンドを使います。
こちらにまとめましたので、あわせてどうぞ。

hwclock -v

まずは、現状を確認しましょう。
ターミナルで、
sudo hwclock -v
と打ち込み、パスワードを入力します。
Assuming hardware clock is kept in UTC time.」(画像中段赤枠)から、ハードウェアクロック=BIOSで確認できる「システム時間」をUTC Timeに保つとなっていることが分かります。

hwclock -v -w -l

次に、Local Timeに設定を変更するため、
sudo hwclock -v -w -l
と打ち込みます。
Assuming hardware clock is kept in local time.」(画像中段赤枠)と表示され、設定が変更されたことが確認できました。

TIPS

hwclockコマンドの後ろのオプションは、
 -v--verboseでもよくて、display more details という意味。
 -wは --systohcでもよくて、set the RTC from the system time という意味
 -lは --localtimeでもよくて、the RTC timescale is Local という意味
という意味です。
ちなみにもとに戻すには、
sudo hwclock -v -w -u
 -uは --utcでもよくて、the RTC timescale is UTC という意味
でOKです。

BIOS LOCAL

再起動し、システム時間を確認すると、
8:22 Local Time
になってますね。

これでWindows11を立ち上げると、当然時間は、
8:23の Local Time
ですね。

一度設定してしまえばOKです。

コメント

タイトルとURLをコピーしました