Zmuś Windows 8 do używania UTC podczas pracy z zegarem BIOS

18

Mam Arch Linux + Windows 8 na moim laptopie. W poprzednich wersjach systemu Windows w rejestrze ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal) znajdował się kod DWORD, który przełącza się między czasem lokalnym a czasem UTC, ale wydaje się, że nie działa już w systemie Windows 8.

Dostaję teraz czas UTC w systemie Windows, ponieważ uważa, że ​​BIOS daje mu czas lokalny, który jest w rzeczywistości czasem UTC, a po ponownym uruchomieniu w Arch Linux, zegar staje się czasem lokalnym-0400, ponieważ Arch uważa, że ​​BIOS ma prawidłowy czas UTC.

Nie chcę, aby Arch Linux używał czasu lokalnego. Czy w ramach tego warunku istnieje jakieś możliwe rozwiązanie?

jiehanzheng
źródło
1
Klucz RealTimeIsUniversal działał dla mnie dobrze, również z podwójnym uruchamianiem Arch Linux.
numery1311407

Odpowiedzi:

3

RealTimeIsUniversal jest naprawdę błędny i nie jest oficjalnie zalecanym rozwiązaniem (może dlatego wyłączono go w Win8?) Zobacz Zegar czasu rzeczywistego IBM PC powinien działać w UT i odpowiedź Raymonda Chena tutaj: Dlaczego Windows utrzymuje zegar BIOS w czasie lokalnym? . Na dzień dzisiejszy nie sądzę, aby istniało właściwe rozwiązanie tego problemu.

Karan
źródło
5
powozik? nigdy nie miał z tym żadnych problemów, a zmuszanie systemu Windows do korzystania z zegara systemowego UTC jest naprawdę jedynym rozsądnym rozwiązaniem. i klucz nie jest wyłączony w win8. prawdziwym rozwiązaniem jest ustawienie klucza rejestru, wyłączenie synchronizacji czasu w systemie Windows i umożliwienie linuxowi obsługi synchronizacji, jeśli uruchamia się tam wystarczająco często.
latające owce
1
@flyingsheep Przez lata wydano kilka poprawek, zobacz Bieżący status pomocy technicznej w systemie Windows na cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html
Stijn
@Stijn Świetny link, myślę, że powinieneś zrobić z niego odpowiedź dla większej widoczności.
Marc.2377,
15

Domyślna usługa Czas systemu Windows zawsze zapisuje czas lokalny do zegara sprzętowego podczas zamykania, niezależnie od tego, co rejestr mówi o czasie rzeczywistym w UTC. Poza tym zastrzeżeniem system Windows będzie poprawnie traktował sprzętowy zegar czasu, jeśli rejestr zostanie poprawnie ustawiony. Spróbuj tego:

  1. Jeśli czas jest pomieszany z próbą zmuszenia systemu Windows do korzystania z UTC, uruchom system Windows i ustaw czas w normalny sposób (poprawna strefa czasowa, brak regedit, włączona usługa Czas systemu Windows, niedawno zsynchronizowana itp.)
  2. Wykonaj regedit, o którym już wspomniałeś
  3. Synchronizuj czas w32tm /config /update
  4. Wyłącz usługę Czas systemu Windows sc config w32time start= disabled
  5. Zainstaluj zewnętrznego klienta NTP
  6. Sprawdź, czy działa przy ponownym uruchomieniu
JumperPunk
źródło
1
Skonfiguruj to sam po ustawieniu zegara w systemie Windows przy każdym wyłączeniu. Znaleziono następujące oprogramowanie NTP dla systemu Windows, które jest bardzo łatwe do skonfigurowania i skonfigurowania. meinbergglobal.com/english/sw/ntp.htm
Dracs
To oprogramowanie wydaje się być przepakowaniem oficjalnej dystrybucji NTP, z pewnymi dodatkami. W każdym razie użyłem go i znalazłem, że działa.
David Z
10

RealTimeIsUniversalklucz rejestru nadal działa w systemie Windows 8 i 10! Właśnie przetestowałem to sam. Instrukcje korzystania z tej metody są wyjaśniane wiele razy wszędzie, na przykład w tej odpowiedzi .

Tutaj powtórzę odpowiedź:

  1. Win+ S, regedit, Enter.

  2. Przejdź do klucza: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation.

  3. Utwórz nową wartość DWORD (32-bit), nazwij ją RealTimeIsUniversal.

  4. Ustaw jego wartość na 1.

Po wykonaniu tej czynności uruchom ponownie komputer. Po jego ponownym uruchomieniu pozwól systemowi Windows ustawić czas automatycznie (kliknij aktualny czas w zasobniku, Date and Time Settings> Set Time Automatically), tym razem nie będzie z nim bałaganu.

TranslucentCloud
źródło
0

@ jiehanzheng tak, jeśli użyjesz NTP w systemie Windows, zepsuje to zegar. Wygląda na to, że najlepszym obejściem jest uruchomienie NTP w dowolnym stylu * NIX, z którego korzystasz podwójnie, wyłączenie NTP w Windows i przesunięcie przy użyciu dowolnej strefy czasowej, której potrzebujesz. Następnie musisz ręcznie dostosować czas letni za pomocą zmiany strefy czasowej w systemie Windows, ale eh ..

wajeemba
źródło
0

RealTimeIsUniversalpracuje dla mnie. Aby go uruchomić, po zastosowaniu wpisu rejestru zamknij system Windows (nie uśpienie ani hibernacja). Uruchom komputer i wejdź do systemu BIOS przed uruchomieniem systemu Windows, zmień czas w systemie BIOS, zapisz, a następnie kontynuuj uruchamianie systemu Windows. Alternatywnie, po wyłączeniu systemu Windows, uruchom system Linux i pozwól synchronizacji czasu wykonać swoją pracę. Jeśli czas jest aktualizowany z poziomu systemu Windows, system Windows w jakiś sposób zaktualizuje nieprawidłowy czas w systemie po ponownym uruchomieniu.

użytkownik416162
źródło
1
Czy możesz link do źródeł, które wyjaśniają RealTimeIsUniversal? Nie wiedziałem, co to było, dopóki o tym nie wspomniałeś, a z wielu wyników wygląda na to, że ma własny zestaw potencjalnie negatywnych skutków ubocznych.
killermist
-1

RealTimeIsUniversal pracował dla mnie w systemie Windows 10. A w połowie grudnia 2016 roku działa również w moim systemie Windows 7 Pro, bez konieczności ponownego uruchamiania systemu Linux.

Kevin O'Gorman
źródło
-3

Możesz po prostu ustawić strefę czasową na cztery godziny.

wprowadź opis zdjęcia tutaj

Caleb Jares
źródło
Sprytne obejście ... ale sprzęt i zegar systemowy zostaną ponownie pomieszane, gdy użyję NTP (czasu internetowego), prawda?
jiehanzheng