Linuxでは、ハードウェアとシステムクロックの両方が間違っています。

Linuxでは、ハードウェアとシステムクロックの両方が間違っています。

ラップトップをデュアルブートし、EndeavourOSをインストールしました。 (他のOSはWindows 10です。)

したがって、ハードウェアとシステムクロックの両方が間違った時間を示しています。

正しいタイムゾーン(UTC + 5:30)を設定しましたが、まだ間違った時間が表示されます。

timedatctl

 Local time: Sat 2023-02-25 09:12:46 IST

 Universal time: Sat 2023-02-25 03:42:46 UTC
 
 RTC time: Sat 2023-02-25 03:42:46
 
 Time zone: Asia/Kolkata (IST, +0530)
 
 System clock synchronized: no
          
 NTP service: active
      
 RTC in local TZ: no

ここに私の端末のスナップショットがあり、間違った時間が表示されます。 UTC時間は約3時59分で、この記事を書く時点の現地時間は9時29分です。

さまざまなウェブサイトを見てきましたが、この問題に対する解決策が見つかりませんでした。

どんな助けでも大変感謝します!

答え1

したがって、UTC時間は約17分ほど異なります。

System clock synchronized: no
NTP service: active

NTP サービスがアクティブであっても、System clock synchronized: no接続するように構成された NTP サーバーから正確な時刻情報が正常に取得されなかったことを示します。

実際のNTPサービスの状態と構成を確認する必要があります。文字通りntpdchronydまたは、またはを意味できますsystemd-timesyncd。 (すべての機能を備えたNTPクライアントである他の2つのクライアントとは異なり、これはsystemd-timesyncdSNTPクライアントです。)

ステータスを照会するには、ntpdを使用しますntpq -np

可能であれば、chronyd以下を使用してください。chronyc -n sources

使用されたsystemd-timesyncdtimedatectl show-timesync --all

これらのコマンドの出力には、NTP 同期サービスに NTP サーバーが構成されているかどうか、およびそのサーバーに接続されているかどうかが表示されます。 NTPサーバーが現在構成されていないか、サーバーがそのサーバーにアクセスできないことを確認してください。

の構成はntpd通常、複数のファイルとサブディレクトリに/etc/ntp.confあり、で構成されています。chronyd/etc/chrony/systemd-timesyncd/etc/systemd/timesyncd.conf

システムクロックが実際の時間から遠すぎるため、時間同期サーバーは大きな時間ジャンプを防ぐために自動的に同期しない可能性があります。その場合は、より大きな時間調整を可能にするために、適切なオプションを使用して手動で同期を一度開始する必要があります。 ntpdの場合ntpd -qg

答え2

したがって、ハードウェアとシステムクロックの両方が間違った時間を示しています。

まあ。そうは思えません。しかし、その他オペレーティングシステムはMS-Windowsなので、いくつかの違いを説明できます。 PCにMS-DOS(またはDR-DOS)が付属している場合、ハードウェアクロックは現地時間に設定されます。 MS-DOSはタイムゾーンを認識しません。 MS-DOSの幽霊は現代のMS-Windowsにまだ存在しています。ハードウェアクロックをローカルタイムゾーンまたはUTCと同期するように設定できます。ただし、お使いのコンピュータが15分遅いように見えるため、他のオペレーティングシステムはハードウェア時計でUTCを使用しているようです。

OTOH、あなたは「arch-linux」というタグを付けてEndeavourOSをインストールしたと言いました。したがって、おそらく両方のオペレーティングシステムは異なるバージョンのLinuxを実行しているでしょう。さて、Arch Linuxで起動しても同じ違いがあるようです。

Linuxは、起動時またはハードウェアクロックを自己計算時間と同期させることを決定した場合にのみ、ハードウェアクロックを読み取ります。また、15分間眠らずに数ヶ月を過ごす可能性もありません。

最も可能性の高い原因は、ハードウェア時計が完全に間違っているためです。コマンドを使用するか、ntp(Linuxが実行時に使用する)を介してシステムクロックを設定できますdate。これを行った後は、ハードウェア時計を設定する必要があります。これは hwclock コマンドを使用して行われます。

ローカルコンピュータのマニュアルページで、date コマンドと hwclock コマンドの使用方法について説明します。

答え3

この問題は、Linux と MS Windows の間の異なる時間の仮定によって発生する可能性があります。デフォルトでは、MS Windowsでは時間が現地時間として保存され、Linuxでは時間がUTC時間として保存されているとします。したがって、デュアルブートすると、オペレーティングシステムの1つに間違った時間が表示されます。解決策は、Linuxに現地時間を使用さ​​せることです。または、MS WindowsでUTCを使用してください。 2番目のオプションは簡単ではないかもしれません。このOSでこれらを変更する方法がわかりません。ただし、Linuxで現地時間を使用するには、次のコマンドを使用します。

timedatectl set-local-rtc 1 --adjust-system-clock

その後、表示されたコマンドを実行すると、わずかにtimedatectl 異なる出力が表示されます“RTC in local TZ: yes”

答え4

他の答えはうまくいきますが、尊敬されるLinux と Windows を UTC を有効にすると、一部の Windows バージョンでは、オンライン時刻を同期するように設定されている場合、ハードウェアの時計を現地時間に戻します。 (Windowsのデフォルト値は現地時刻)

これは簡単なレジストリ修復で行うことができます。レジストリを開き、regeditレジストリに16進値を追加します。 DWORD1HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

管理者コマンドプロンプトでこれを行うことができます。

C:\>reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

または、デスクトップで次の内容で* .regファイルを作成し、ダブルクリックしてレジストリにインポートします。

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001

DST の変更により Windows で時計の更新が必要な場合は、そのままにしてください。期待どおりにUTCクロックを維持し、表示された時間のみを修正します。

この値を設定したら、ハードウェアクロックとシステムクロック時間を更新する必要があります。

時間オフセットの問題がある場合は、tzdataを再インストールしてタイムゾーンをリセットしてみてください。

はい

timedatectl set-timezone America/Los_Angeles

源泉

関連情報