Wahrscheinlich versucht Linux, Ihre Hardware-Uhr als UTC zu halten . Es wird jedes Mal, wenn es benötigt wird, in die gewünschte Zeitzone neu berechnet. Dies macht die Hardware-Uhr unabhängig von Zeitzone, bestimmten Betriebssystemen, DST usw. Zwei Betriebssysteme mit unterschiedlichen Zeitzoneneinstellungen können friedlich nebeneinander existieren, wenn sie sich nur darin einig sind, dass die Hardware-Uhr UTC ist.
Windows hingegen schließt die Hardware-Uhr an sich an. Es verwendet die Ortszeit und erwartet, dass die Hardware-Uhr entsprechend eingestellt wird. Zwei solche unverschämten Betriebssysteme mit unterschiedlichen Zeitzoneneinstellungen werden ständig um eine Hardware-Uhr kämpfen. Und da Linux versucht, es als UTC beizubehalten, hat es auch Schwierigkeiten mit Windows, es sei denn, die Ortszeit in Windows sollte mit UTC übereinstimmen (sollte dies in Ihrem Fall jedoch nicht sein).
Es gibt nur wenige Möglichkeiten, damit umzugehen. Wähle eins:
Lassen Sie jedes Betriebssystem eigenständig über NTP synchronisieren und stellen Sie die Hardware-Uhr hin und her. Bis zum Einsetzen des NTP-Daemons / -Dienstes ist die Systemuhr möglicherweise ausgeschaltet. Wenn der Daemon / Dienst seine Aufgabe nicht erfüllt, ist die Systemuhr möglicherweise ausgeschaltet. Ihre Kommentare lassen mich glauben, dass Ihr Windows-Zeitdienst überhaupt nicht startet. es sollte automatisch starten. Ich denke, die Zeit ist auch abgelaufen, wenn Sie Ihr Ubuntu starten, aber Linux stellt die Uhrzeit über NTP richtig ein, bevor Sie es wissen.
Stellen Sie sicher, dass Windows UTC als Hardwarezeit unterstützt. Siehe diese Antwort auf die entsprechende Frage . Beachten Sie, dass Sie den Windows-Zeitdienst beenden müssen.
Stellen Sie sicher, dass Ubuntu die Ortszeit als Hardwarezeit verwendet. Laut dieser Antwort :
Überprüfen Sie, ob
/etc/adjtime
das korrekt konfiguriert ist. Die dritte Zeile mussUTC
(genau diese drei Zeichen) enthalten, wenn die Hardware-Uhr UTC verwendet, und etwas anderes (z. B. leer), wenn die Hardware-Uhr Ortszeit verwendet (in der durch definierten Zeitzone/etc/timezone
).Natürlich sollten die Zeitzoneneinstellungen auf beiden Betriebssystemen übereinstimmen. Ich glaube, mit dieser Methode können Sie die Synchronisierung über NTP auf einem oder beiden Betriebssystemen fortsetzen.
Bearbeiten
Der dritte Weg erfordert es /etc/adjtime
. Wenn es in Ihrem Ubuntu keinen gibt, dann glaube ich, dass diese Antwort den richtigen Hinweis gibt:
Wenn
/etc/adjtime
keine Datei vorhanden ist, geht systemd davon aus, dass die Hardware-Uhr auf UTC eingestellt ist.Die Hardware-Uhr kann mit dem
timedatectl
Befehl abgefragt und eingestellt werden . Um den Hardware-Uhrzeitstandard in Ortszeit zu ändern, verwenden Sie:sudo timedatectl set-local-rtc 1
Wenn Sie zur Hardware-Uhr in UTC zurückkehren möchten, führen Sie folgende Schritte aus:
sudo timedatectl set-local-rtc 0
Diese werden
/etc/adjtime
automatisch generiert und die RTC entsprechend aktualisiert. Es ist keine weitere Konfiguration erforderlich.