Zugriff auf die Hardware-Uhr in UTC oder lokaler Zeit

Es gibt auf einem Linux-System zwei Arten von Zeitquellen:

  • Die Hardware-Uhr (Teil der CPU, manchmal auch RTC genannt) dient als permanente Zeitquelle (auch bei abgeschaltetem Rechner).
  • Die durch den Linux-Kernel verwaltete System-Zeit.

Die Hardware-Uhr wird während des Bootens ausgelesen und initialisiert die Systemzeit. Während das System läuft, wird die Hardware-Uhr nicht weiter ausgelesen, aber beim Herunterfahren des Systems zurückgeschrieben.

Die Systemzeit wird zeitzonenbezogen verwaltet und kann u.a. über den tzset()-Aufruf konfiguriert werden. Auf einem Debian-basierten System wird sie durch /etc/localtime konfiguriert, das auf die entsprechende Locale unter /usr/share/zoneinfo verweist. Diese Einstellung kann auch über den Befehl univention-system-setup-timezone vorgenommen werden.

Die Hardware-Uhr verwaltet selbst keine Zeitzonen-Informationen, sondern wird in vergangenen Sekunden seit dem 1.1.1970 gemessen. Unter DOS/Windows wird die Systemzeit zeitzonenbezogen verwaltet, so dass bei einem Dual-Boot-Betrieb unterschiedliche Systemzeiten unter DOS/Windows und Unix auftreten konnten.
Wenn eine solche Umgebung verwendet wird, kann in /etc/default/rcS

UTC=no

gesetzt werden.In diesem Fall wird anhand der Einstellung in /etc/localtime die aktuelle Zeit verwendet und beim Herunterfahren des Systems entsprechend zurückgesetzt. Der Nachteil einer nicht als UTC verwendeten Systemuhr ist jedoch, dass bei einem nicht sauberen Herunterfahren (z.B. durch einen Stromausfall) des Systems diese Änderung nicht zurückgesetzt wird. Ausserdem werden so Änderungen durch Sommer-/Winterzeit nicht direkt umgesetzt.

Ein rein Linux-basiertes System sollte also nach Möglichkeit mit der Standardeinstellung UTC=yes betrieben werden.

Mastodon