Warum haben zwei Betriebssysteme auf demselben Computer einen Zeitunterschied von 1 Stunde?

0

Mein Computer verfügt über zwei Betriebssysteme, eine Linux-Distribution (primär) und ein Windows 7 (nur selten verwendet).

Beide Betriebssysteme sind in meiner Zeitzone (UTC + 1) eingestellt.

Je nachdem, wie ich die Uhrzeit im BIOS eingestellt habe, zeigt Windows die Uhrzeit 1 Stunde vor der aktuellen Uhrzeit oder Linux 1 Stunde danach an.

Warum passiert das?

Der Windows-Computer wird normalerweise vom Internet getrennt. Die Linux-Version ist stattdessen verbunden, sodass das Datum nach kurzer Zeit korrigiert wird. Nach dem Neustart ist sie jedoch erneut falsch konfiguriert.

BEARBEITEN: Es wurde ein Duplikat von https://serverfault.com/questions/16107/why-does-ubuntu-9-04-reset-my-windows-clock gefunden

Marcus
quelle

Antworten:

2

Ich kann mir ein paar Probleme vorstellen, die hier möglicherweise eine Rolle spielen.

Erstens ist möglicherweise die Sommerzeit in der einen und nicht in der anderen Zeitzone aktiviert, oder eines Ihrer Betriebssysteme ist für die falsche Zeitzone konfiguriert.

Linux geht möglicherweise davon aus, dass die Hardware-Uhr Ihres Computers auf UTC anstatt auf lokal eingestellt ist, und Windows denkt möglicherweise, dass sie auf lokal eingestellt ist. Wenn Sie sich bei UTC + 1 oder UTC-1 befinden, wird dieses Verhalten möglicherweise angezeigt. Linux lädt möglicherweise den Wert der Hardware-Uhr, passt ihn lokal an und wandelt ihn dann wieder in UTC um, bevor beim Herunterfahren auf die Hardware-Uhr geschrieben wird.

Steve
quelle
Zeitzonen sind für beide korrekt, aber Sie haben Recht damit, dass die beiden Betriebssysteme die Hardware-Uhr auf unterschiedliche Weise interpretieren. Ich bin mir nicht sicher, wie ich das beheben soll.
Marcus
Lösung hier gefunden: serverfault.com/questions/16107/…
Marcus
@Marcus überlebt es einen Neustart? wenn ja, herzlichen glückwunsch. Sieht so aus, als wäre ich zu spät gekommen. : \ - /etc/default/rcSist auch nicht auf allen Systemen vorhanden - ich denke, es ist Ubuntu-spezifisch. Debian (von dem Ubuntu abgeleitet ist) hat es nicht.
Wyatt8740
Es hat überlebt! Ich bin sehr glücklich, da ich es, obwohl selten, manchmal vergaß (1 Stunde Verspätung ist ziemlich mühsam ...)
Marcus
@Marcus freut sich dann zu hören. Ich bin froh, dass es funktioniert. Es war manchmal verwirrend für mich. Vor allem, wenn ich Zeitzonen verschoben habe
Wyatt8740
1

Ihre Linux-Distribution geht davon aus, dass Ihre BIOS-Uhr UTC verwendet, und Ihre Windows-Installation geht davon aus, dass Ihre BIOS-Zeit in der Ortszeit angegeben ist.

Hier ist, wie ich es mit einem Dual-Boot auf meinem Laptop eingerichtet habe: Ich ändere die Linux-Seite, um localtime anstelle von UTC für die Systemuhr zu verwenden. Führen Sie zuerst einen Befehl aus, damit die Uhrzeit auf der Linux-Seite richtig eingestellt ist root:

date -s "2 feb 2016 18:05:15"

hwclock --hctosys --localtimesollten die BIOS-Einstellungen für Datum und Uhrzeit auf Ihren Computer kopieren und auf die Ortszeit einstellen. hwclock --systohc --localtimesollte die BIOS-Zeit in localtime anstelle von UTC einstellen. Ich würde empfehlen, die Zeit mit dem dateobigen Befehl einzustellen und dann auszuführen: hwclock --systohc --localtime UND AUCH auszuführen: hwclock --hctosys --localtime, um sicherzustellen, dass / etc / adjtime die letzte Zeile der Datei mit der Aufschrift 'LOCAL' enthält. statt 'UTC' oder so ähnlich. Die --hctosys --localtimeFlags zusammen können dies programmatisch erreichen. Es ist möglich, dass datedas alleine geht, aber ich habe es nicht überprüft.

um zu überprüfen, ob die Systemzeit tatsächlich in der Ortszeit korrekt ist. Machen Sie sich keine Sorgen darüber, wie die Zeichenfolge für die Datumseinstellung formatiert ist, sie ist äußerst flexibel. Ein Beispiel für andere gültige Ausdrücke:

date -s "2 feb 2016 6:05:15 PM"
date -s "february 2, 2016 6:11:30 PM"
date -s "Tue Feb  2 18:11:30 EST 2016"

(Ich bin in der Eastern Standard Time, GMT -5)

Wenn Sie weiterhin Probleme haben, müssen Sie möglicherweise eine Zeitzone neu auswählen. In Debian oder Derivaten wie Ubuntu sudo dpkg-reconfigure tzdataändern Sie die Zeitzonen in einer ncurses-Oberfläche.

Wenn Sie das nicht haben, versuchen Sie, Ihre relevante Zeitzoneninformationsdatei zu finden. Auf meiner Installation ist dies /usr/share/zoneinfo/America/Indiana/Indianapolis.

Wenn Sie es gefunden haben, kopieren Sie es nach /etc/localtime:

cp /usr/share/zoneinfo/America/Indiana/Indianapolis /etc/localtime

Ich würde sicherstellen, dass die Zeit danach immer noch daterichtig eingestellt ist. Ist dies nicht der Fall, führen Sie die ersten beiden Befehle ( dateund hwclock) erneut aus.

in linux sollte es so machen, dass jede zeit, die du in linux einstellst, mit windows richtig geteilt wird. Alternativ kann dies durchgeführt werden, es ist jedoch schwieriger, Windows auf die Verwendung von UTC einzustellen. Es ist bekannt, dass Änderungen an Versionen und Fenstern nach Aktualisierungen auf die Ortszeit zurückgesetzt werden.

Ich erinnere mich an einen besonders widerspenstigen Computer, auf dem alle hwclockVorgänge außer Kraft gesetzt wurden, weil der Computer die aktuelle Uhrzeit über das Internet mit NTP abrief. Die Zeitzoneneinstellung war die einzige Möglichkeit, dies zu beheben, ohne NTP insgesamt zu deaktivieren.

Wie auch immer, das ist nur ein großer Auszug meiner bisherigen Erfahrungen mit dieser Angelegenheit. Eine davon wird mit ziemlicher Sicherheit funktionieren. Ich würde zuerst das Timezone-Zeug ausprobieren und dann definitiv das hwclock --systohc --localtimeZeug ausprobieren, nachdem Sie fertig sind, um sicherzustellen, dass die BIOS-Uhr in der Ortszeit ist.

Wyatt8740
quelle