【Windows】リナックス環境での時間のズレをシステムの同期設定により修正する手順

【Windows】リナックス環境での時間のズレをシステムの同期設定により修正する手順
🛡️ 超解決

Windowsとリナックス環境を併用しているビジネスマンの方で、時間がずれて困った経験はありませんか。

この時間のズレは、OSがシステムのハードウェアクロックを認識する方法が異なるために発生します。

この記事では、Windowsのシステム同期設定を調整し、リナックス環境との間の時間のズレを修正する手順を詳しく解説します。

【要点】Windowsとリナックス環境の時間のズレを解消する方法

  • レジストリのバックアップ: 万が一に備え、レジストリ変更前に必ずバックアップを取得します。
  • レジストリ編集: WindowsがハードウェアクロックをUTCとして認識するよう設定を変更します。
  • タイムサーバーの同期設定: Windowsの時刻設定でNTPサーバーとの同期状況を確認し、必要に応じて調整します。

ADVERTISEMENT

Windowsとリナックスで時間がずれる根本原因

Windowsはシステムのハードウェアクロックをローカル時刻として扱います。

一方、多くのリナックスディストリビューションは、ハードウェアクロックを協定世界時UTCとして扱います。

このOS間でのハードウェアクロックの認識方法の違いが、デュアルブート環境やWSL環境で時間のズレを引き起こす主な理由です。

Windowsがサマータイムを自動的に考慮する点も、時間のズレに影響を与える要因となります。

お探しの解決策が見つからない場合は、こちらの「Windowsトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

Windowsのシステム同期設定を調整する手順

ここでは、Windowsのレジストリを編集してハードウェアクロックの扱いを変更し、タイムサーバーの同期設定を確認する手順を説明します。

  1. レジストリのバックアップを取得する
    レジストリの編集はシステムに影響を与える可能性があるため、必ず事前にバックアップを取得してください。
    1. WindowsキーとRキーを同時に押し、「ファイル名を指定して実行」ダイアログを開きます。
    2. 「regedit」と入力し、Enterキーを押してレジストリエディターを起動します。
    3. ユーザーアカウント制御のダイアログが表示されたら、「はい」を選択します。
    4. レジストリエディターのメニューバーから「ファイル」を選択し、「エクスポート」をクリックします。
    5. 「エクスポート範囲」で「すべて」を選択し、任意の場所に分かりやすい名前で保存します。
  2. WindowsにハードウェアクロックをUTCとして認識させる
    WindowsがハードウェアクロックをUTCとして扱うようにレジストリを設定します。
    1. レジストリエディターで、次のパスに移動します。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
    2. TimeZoneInformationキーを右クリックし、「新規」から「DWORD 値 32ビット」を選択します。
    Windows 64ビット環境でも「DWORD 値 32ビット」を選択します。ただし、Windows Server環境など特定のシステムでは「QWORD 値 64ビット」を選択する場合があります。
    3. 新しく作成された値の名前を「RealTimeIsUniversal」に変更します。
    4. 「RealTimeIsUniversal」をダブルクリックし、「値のデータ」を「1」に設定して「OK」をクリックします。
  3. タイムサーバーの同期設定を確認する
    Windowsの時刻設定でNTPサーバーとの同期状況を確認します。
    1. 「スタート」ボタンを右クリックし、「設定」を選択します。
    2. 設定画面の左側メニューから「時刻と言語」をクリックし、次に「日付と時刻」を選択します。
    3. 「時刻を自動的に設定」が「オン」になっていることを確認します。
    4. 「タイムゾーンを自動的に設定」も「オン」になっていることを確認します。
    5. 「今すぐ同期」ボタンをクリックして、手動で時刻同期を試みます。
    6. Windows 10の場合は、「設定」→「時刻と言語」→「日付と時刻」で「関連設定」の「別のタイムゾーンの時計を追加する」から「日付と時刻」タブを開き、「インターネット時刻」タブで「設定の変更」から同期サーバーを確認・変更できます。
  4. システムを再起動する
    レジストリの変更と時刻同期の設定をシステムに適用するため、PCを再起動します。

時間のズレが解消されない場合の確認点と対処

上記の手順を実行しても時間のズレが解消されない場合、以下の点を確認してください。

レジストリ編集後に時間がさらにずれてしまう

レジストリの「RealTimeIsUniversal」値を「1」に設定したにもかかわらず、時間がさらにずれてしまう場合があります。

これは、レジストリ値の設定ミスか、リナックス側もハードウェアクロックをローカルタイムとして扱う設定になっていることが原因です。

レジストリエディターで「RealTimeIsUniversal」の値が正しく「1」になっているか再確認してください。

また、リナックス環境の設定ファイル、例えばUbuntuであれば/etc/default/rcS/etc/adjtimeなどで、UTC=yesまたはLOCAL=noが設定されているかを確認し、ハードウェアクロックがUTCとして扱われていることを確認してください。

Windows Update後に設定が元に戻る

ごく稀に、特定のWindows Updateが適用された後にレジストリの設定がリセットされ、時間のズレが再発する場合があります。

この場合は、再度「WindowsにハードウェアクロックをUTCとして認識させる」の手順を実行し、レジストリ値を設定し直してください。

定期的に設定が維持されているか確認することをおすすめします。

WSL2環境で時間がずれる場合の追加設定

WSL2は仮想マシンとして動作するため、Windowsのシステム時刻と同期させるための追加設定が必要な場合があります。

WSL2のディストリビューション内でNTPクライアントの設定を調整することで、時間のズレを抑制できます。

例えば、Ubuntuであればsudo apt update && sudo apt install ntpでNTPデーモンをインストールし、/etc/ntp.confを編集して同期サーバーを設定することが考えられます。

また、Windowsの管理者PowerShellでwsl --shutdownを実行し、WSL環境を一度完全にシャットダウンしてから再起動すると、時刻が同期されることがあります。

ADVERTISEMENT

Windowsとリナックスの時刻認識方法の比較

Windowsとリナックスの時刻認識方法の違いを以下の表にまとめました。

項目 Windows リナックス
ハードウェアクロックの扱い デフォルトでローカルタイムとして認識 デフォルトでUTC協定世界時として認識
デフォルトの同期設定 NTPサーバーと同期し、ローカルタイムを調整 NTPサーバーと同期し、UTCを調整
サマータイムの考慮 システムのタイムゾーン設定に基づいて自動的に調整 タイムゾーン設定に基づいてUTCからローカルタイムを算出

この記事で解説したWindowsのレジストリ設定とNTP同期設定の調整により、Windowsとリナックス環境間の時間のズレを修正できます。

時間の正確な同期は、業務アプリケーションの正常動作やログの整合性を維持するために不可欠です。

本記事の手順を活用し、Windowsとリナックス環境における時間のズレを解消し、よりスムーズで正確な作業環境を構築してください。

💻
Windowsトラブル完全解決データベース 起動不能、更新の不具合、動作が重い、設定の消失など、Windows 10/11のあらゆるトラブル解決手順を網羅しています。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。