Windows – Zeitverschiebung
Wie Sie Zeitdrift in Windows-VMs auf VergeOS beheben, indem Sie die RTC-Base-Einstellung und den Registrierungswert RealTimeIsUniversal konfigurieren, damit UTC-Zeit korrekt verarbeitet wird.
Beschreibung des Problems
VergeOS Virtual Machines (VMs), auf denen Windows-Betriebssysteme laufen, können einen „Zeitversatz“ erleben, bei dem das Gastbetriebssystem die Zeit regelmäßig auf einen falschen Wert anpasst.
Die Grundursache verstehen
Dieses Zeitversatzproblem beruht auf einer grundlegenden Abweichung zwischen den Erwartungen von Windows und dem Verhalten moderner Hypervisoren. Konkret entsteht der Zeitversatz durch:
Virtuelle Hardwareuhr (RTC) - Beim Start der VM liest Windows die Zeit aus der emulierten Echtzeituhr, die KVM/QEMU auf Basis der Zeit des Hosts setzt
Erste Uhrensynchronisierung - Dies geschieht beim Start der VM, wenn Windows die virtuelle BIOS-/CMOS-Uhr ausliest, nicht über einen Agenten
Das Problem besteht darin, dass Windows davon ausgeht, dass die Hardwarezeit die lokale Zeit ist, moderne Hypervisoren (einschließlich KVM/QEMU) jedoch UTC-Zeit bereitstellen. Ursache ist das Windows-Betriebssystem, das erwartet, dass die Zeit von der physischen Hauptplatine in lokaler Zeit (RTC) und nicht in koordinierter Weltzeit (UTC) vorliegt.
VergeOS stellt die Zeit in UTC bereit, was sich als Industriestandard etabliert hat, da damit die Umstellung auf Sommerzeit (DST) ausgeglichen wird. Das Gastbetriebssystem passt die Zeit automatisch an, wenn es den Uhrwert mit einer autoritativen Zeitquelle vergleicht, da es davon ausgeht, dass die von der Hardware bereitgestellte Zeit lokal und nicht UTC ist. Dieser Vergleich führt zu regelmäßigen Abweichungen, weil das Gastbetriebssystem die physische Knotenzeit nicht so anpassen kann, dass sie mit der als korrekt wahrgenommenen Zeit übereinstimmt.
VergeOS-Konfigurationsoption: RTC Base
RTC Base ist eine individuelle VM-Einstellung, mit der VergeOS-Administratoren die dem Betriebssystem bereitgestellte Zeit entweder als lokal oder als UTC festlegen können. Der Wert ist beim Bearbeiten einer beliebigen VM zu finden.

Mit dieser Konfigurationseinstellung können Administratoren jede Maschine fein granular steuern, wobei es wichtig ist, das erwartete Verhalten jeder Option zu verstehen.
Lokale Zeit
Wenn RTC Base auf Lokale Zeit gesetzt wird, wird die Zeit von den physischen Knoten an das virtuelle Gastbetriebssystem weitergegeben. Dadurch wird das ältere Verhalten emuliert, das Windows erwartet. Wenn Windows die lokale Uhrzeit mit einem autoritativen Zeitdienst vergleicht, passt Windows die Zeit innerhalb des Gastbetriebssystems anhand der in der Windows-Konfiguration definierten Zeitzone an. Dies kann zu unerwartetem Verhalten führen.
Bei lokaler Zeit ist Folgendes zu beachten:
Die Zeitzone des physischen Knotens wird jedem Gastbetriebssystem in derselben Weise angezeigt. Wenn VergeOS VMs für unterschiedliche Zeitzonen hostet, nimmt jede Windows-VM die lokale Zeit als denselben Wert wahr.
Die Zeit des physischen Knotens und das Gastbetriebssystem erfordern eine korrekte Konfiguration, um Probleme zu vermeiden, wenn die Sommerzeit (DST) jedes Jahr beginnt oder endet. RTC-Uhren müssen per Software angepasst werden. In der Vergangenheit traten Probleme auf, wenn sich die Richtlinien für die Sommerzeit geändert haben.
UTC-Zeit
Wenn RTC Base auf UTC gesetzt wird, wird die Zeit von den physischen Knoten als koordinierte Weltzeit an die Gast-VMs weitergegeben. Dies ist der Industriestandard für moderne Softwareanwendungen, die mit Zeit umgehen.
Bei Verwendung der UTC-Einstellung in VergeOS sollten Windows-VMs so konfiguriert werden, dass sie erkennen, dass die Zeit als universelle Zeit bereitgestellt wird. Bei den meisten Windows-Betriebssystemen erfolgt die Anpassung in der Windows-Registrierung, indem ein Wert hinzugefügt wird, der „RealTimeIsUniversal“ erkennt.
Der Registry-Fix RealTimeIsUniversal=1 ist die eleganteste Lösung, weil sie:
Windows ausdrücklich die Wahrheit darüber mitteilt, in welchem Zeitformat es die Zeit erhält
Das ständige Tauziehen zwischen Hypervisor und Windows-Zeitdienst beendet
Mit Domänencontrollern und NTP-Synchronisierung funktioniert
Für 64-Bit-Betriebssysteme
unter dem Registrierungsschlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation, muss ein REG_QWORD Eintrag mit den folgenden Werten vorhanden sein:
Name: RealTimeIsUniversal
Wertdaten: 1
Nach der Anpassung dieser Einstellung müssen Administratoren die VM vollständig ausschalten und anschließend wieder einschalten, bevor die Änderung wirksam wird.
Weiterführende Literatur zu diesem Thema
https://www.meinbergglobal.com/english/sw/ntp.htm kann installiert und so eingerichtet werden, dass die Zeit von einem der unter https://tf.nist.gov/tf-cgi/servers.cgi aufgeführten Server bezogen wird. Die Meinberg-NTP-Software kann so konfiguriert werden, dass sie die Zeit stündlich, täglich, wöchentlich usw. korrigiert. So können Sie alles einrichten und dann vergessen.
Weitere Informationen zur Geschichte dieses Problems, einschließlich der Chronologie der Änderungen in Windows, finden Sie hier: https://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html
Zuletzt aktualisiert
War das hilfreich?