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