Bild von Stefan Keller auf Pixabay.
Inhaltsverzeichnis
Einleitung
Beim Parallelbetrieb (‚Dualboot‘) von Linux und Windows kann es vorkommen, dass beide Systeme die Uhrzeit unterschiedlich anzeigen.
Wenn Sie Linux verwenden, dann wird zwar die korrekte Zeit angezeigt, aber sobald Sie wieder einmal Windows starten zeigt dieses eine falsche Zeit. Üblicherweise um ein oder zwei Stunden verschoben. Manchmal ist es auch genau andersherum. Dann zeigt Windows die richtige Zeit, aber Linux anschließend die Falsche.
Das ist grundsätzlich schon etwas seltsam, weil beide Betriebssysteme mit dem Internet verbunden sind und beide aktualisieren die Zeit automatisch.
Aber keine Sorge! Sie sind nicht allein mit diesem Problem. Und die Lösung ist auch ganz einfach. Sie müssen nur folgenden Befehl im Linux-Terminal eingeben:
timedatectl set-local-rtc 1
Das wäre es eigentlich. Aber Moment! Es ist nicht unbedingt empfehlenswert Befehle einzugeben, die man nicht versteht. Ich werde daher gleich erläutern was der Befehl macht. Aber hierzu muss ich erstmal erklären worin das Problem eigentlich besteht.
Warum zeigen Windows und Linux unterschiedliche Zeiten beim Parallelbetrieb?
Der Computer hat im Wesentlichen zwei Uhren: Die Systemuhr und die Hardwareuhr.
Die Hardwareuhr wird auch Real Time Clock (RTC) oder CMOS- bzw. BIOS-Uhr genannt. Diese Uhr ist außerhalb des Betriebssystems auf der Hauptplatine des Computers. Sie verfügt über eine Batterie oder Akku und läuft auch weiter, wenn der Computer ausgeschaltet ist.
Von dieser Hardwareuhr übernimmt die Systemuhr des Betriebssystems die Uhrzeit. Beim Einschalten des Computers wird vom Betriebssysteme die Hardwareuhr ausgelesen und die Systemuhr entsprechend gestellt. Im weiteren Betrieb verwendet das Betriebssystem dann die Systemuhr. Wenn Sie in ihrem Betriebssystem Änderungen an der Uhrzeit vornehmen, wie beispielsweise eine Änderung der Zeitzone, dann versucht die Systemuhr diese Änderung mit der Hardwareuhr zu synchronisieren.
Standardmäßig geht Linux davon aus, dass die Hardwareuhr auf Weltzeit gestellt ist, nicht auf die örtliche Zeitzone. Andererseits geht Windows davon aus, dass die Hardwareuhr auf die Ortszeit gestellt ist. Und das ist der Punkt wo alle Probleme anfangen.
Lassen Sie mich das an einem Beispiel erläutern:
Wenn ich mich um 12 Uhr im August in Berlin befinde und Linux installiere, dann werde ich die Zeitzone auf „Mitteleuropäische Sommerzeit“ stellen. Linux wird nun über das Internet ermitteln, dass es 12 Uhr ist und der Zeitunterschied 2 Stunden zur Weltzeit beträgt. Im Winter wäre es natürlich nur eine Stunde. Entsprechend wird die Systemuhr auf 12 Uhr gestellt und die Hardwareuhr auf 10 Uhr.
Nun schalte ich den Computer aus und starte ihn mit Windows neu. Windows stellt fest, dass die Hardwareuhr auf 10 Uhr steht und stellt die Systemuhr ebenfalls auf 10 Uhr. Im Ergebnis zeigt Windows eine Uhrzeit von 10 Uhr an.
Wenn ich nun den Fehler bemerke und über die Systemsteuerung in Windows die Zeit neu synchronisieren bzw. den Schalter auf Uhrzeit automatisch festlegen stellen, dann wird Windows wieder die richtige Zeit anzeigen. Gleichzeitig wird auch die Hardwareuhr neu gestellt.
Aber Sie ahnen natürlich was passiert, wenn wir nun wieder Linux starten. Nun haben wir in Linux 14 Uhr.Mi 24. Nov 2021, 19:54 Wie die Zeit vergeht!
Gut, nun nachdem wir das Grundproblem verstanden haben, können wir uns an eine Lösung machen.
Problemlösung
Es gibt zwei Möglichkeiten dieses Problem anzugehen:
- Windows dazu bringen, dass es auch die Weltzeit für die Hardwareuhr verwendet.
- Linux dazu bringen, dass es auch die Ortszeit für die Hardwareuhr verwendet.
Was denken Sie ist die einfachere Option? Richtig, die Option zwei!
Daher empfehle ich die Einstellung in Linux zu ändern. Ubuntu und die meisten Linux-Distributionen verwenden heutzutage systemd und daher kann der Befehl timedatectl verwendet werden um die Einstellung zu ändern.
Wir wollen unserem Linux-System erklären, dass wir die Ortszeit für die Hardwareuhr verwenden möchten. Hierzu müssen wir die Variable set-local-rtc auf WAHR setzen.
timedatectl set-local-rtc 1
Die Variable ist (fast) selbsterklärend: Setze (set) die Ortszeit (local) als Standard für die Hardwareuhr (rtc). Der Wert 1 steht für WAHR, während der Wert 0 für FALSCH stehen würde.
Wie man dem Bildschirmfoto unten entnehmen kann, verwendet Linux nun an auch die Ortszeit für die Hardwareuhr:
Das Bildschirmfoto zeigt den Stand vorher, den Befehl und den Stand nachher. Die roten Untersteichungen sind von mir eingefügt.
Wenn Sie nun Windows starten, nimmt es die Zeit der Hardwareuhr als Ortszeit, was korrekt ist. Und wenn Sie Linux starten, dann weiß es ebenfalls, dass die Hardwareuhr die Ortszeit verwendet. Es wird nicht mehr versuchen, die Hardwareuhr neu zu stellen.
Damit ist das Problem der Zeitunterschiede zwischen Linux und Windows behoben.
Und ja, natürliche muss man diesen Befehl nur einmal eingeben. Linux merkt sich die Einstellung. Es ist nicht so, dass man ihn nach jedem Neustart wieder einstellen muss.
Sie werden einen Hinweis erhalten die Hardwareuhr nicht auf die Ortszeit umzustellen, weil dieses zu Problemen führen könnte. Nun, solange wir von einzelnen Arbeitplatzrechnern sprechen, sollte diese nicht zu Problemen führen. Zumindest sind mir keine bekannt.
Abgesehen davon, dass beim Synchronisieren von Verzeichnissen mit einem Programm wie FreeFileSync u. U. alle Dateien nach einer Zeitumstellung als „neu“ erkannt werden. Genau dieser Effekt tritt aber auch in Windows auf. Er sollte (ehemalige) Windows-Nutzer daher nicht überraschen. Aus diesem Grund gibt es aber z. B. in FreeFileSync die Möglichkeit Abweichungen von exakt einer Stunde zu ignorieren. Womit das Problem behoben wäre.
—-
Dieser Artikel ist eine Übersetzung eines Artikels von Abhishek Prakash und erschien zuerst auf It’s FOSS. Dieser deutschsprachige Text erschien zuerst auf BlogLinux. Lizenz: CC BY-SA 4.0
Erstveröffentlichung: Mi 24. Nov 2021, 19:54, ikoch
Eine Reaktion
Ich benutze seit Jahren ein Dual-Boot System und habe die RTC auf UTC stehen.
Damit Windows damit klar kommt, habe ich folgenden Registry-Eintrag gemacht.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
„RealTimeIsUniversal“=dword:00000001
Probleme gab es damit noch nie.