20.
April
2010
Betreibt man einen PC mit mehreren Betriebssystemen kann sich ein unerwünschter Effekt einstellen: Während beim ersten Starten unter Windows noch die korrekte Uhrzeit eingestellt ist, weicht sie nach einem Start vom ebenfalls installierten Linux um ein bis zwei Stunden ab.
Dieses Verhalten ist reproduzierbar, dabei wird unter Linux jedoch die richtige Uhrzeit angezeigt.
Der scheinbare Fehler von Windows liegt darin, davon auszugehen, dass die im BIOS eingestellte Uhrzeit der lokalen Zeitzone entspricht. Linux hingegen geht bei den meisten Distributionen als Standardeinstellung davon aus, dass die BIOS-Uhrzeit nicht auf die lokale Zeit, sondern auf »UTC« eingestellt ist. Manchmal kann während der Installation diese Einstellung jedoch entsprechend verändert werden.
Wenn Linux bereits installiert ist, wird häufig auch ein Abgleich des Datums per UTC, der »universal time coordinated«, also »koordinierten Weltzeit« vorgenommen. In Verbindung mit der eingegebenen Zeitzone geht die installierte Linuxdistribution wie folgt vor:
Zunächst wird die Zeit ausgelesen, anschließend entsprechend der Wahl der Zeitzone eine Korrektur vorgenommen beispielsweise +2 Stunden bei mitteleuropäischer Sommerzeit für Berlin.
Jedoch aktualisiert die Distirbution nicht die berechnete Uhrzeit gemäß der Zeitzone, sondern aktualisiert die Uhrzeit auf den UTC-Wert.
Eine Neuinstallation für die Auswahl des richtigen Verhaltens ist natürlich nicht notwendig. Die Lösung des Problems liegt – wie bei Linux üblich – in einer kleinen Konfigurationsdatei:
sudo vim /etc/default/rcS
Natürlich kann auch ein anderer Texteditor verwendet werden. Wichtig ist jedoch, dass er mit Rootrechten gestarett wird. Anschließend ist folgende Einstellung zu ändern:
# Set UTC=yes if your system clock is set to UTC (GMT), and UTC=no if not.
UTC=no
Es müsste der Wert auf yes
stehen, die Systemuhr würde dem UTC-Wert entsprechen. Damit die Distribution sich so verhält, dass die regionale Zeitzone abgespeichert wurde, musst dieser Wert auf no
geändert werden.
Nach dieser Änderung sollte bei den nächsten Starts bei Windows und Linux die gleiche Uhrzeit angezeigt werden.
Natürlich wäre es auch möglich in Windows zu erzwingen, dass direkt nach dem Start ein UTC-Abgleich über das Internet erfolgt. Aber: Warum sollte man nicht den einfacheren Weg gehen beziehungsweise den tatsächlichen Fehler ausmerzen?
X_FISH