Forza Windows 8 a utilizzare UTC quando si ha a che fare con l'orologio BIOS


18

Ho Arch Linux + Windows 8 sul mio laptop. Nelle versioni precedenti di Windows, nel registro è presente un DWORD ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal) che commuta tra localtime e UTC, ma questo non sembra funzionare più in Windows 8.

Ora sto ricevendo l'ora UTC in Windows poiché pensa che il BIOS gli dia l'ora locale che in realtà è l'ora UTC, e dopo il riavvio in Arch Linux, l'orologio diventa localtime-0400, perché Arch pensa che il BIOS abbia l'ora UTC corretta.

Non voglio permettere ad Arch Linux di usare il localtime. In base a questo prerequisito, esiste qualche soluzione possibile?


1
La chiave RealTimeIsUniversal ha funzionato bene per me, anche il doppio avvio di Arch Linux.
numeri 1311407,

Risposte:


3

RealTimeIsUniversal è veramente difettoso e non è una soluzione ufficialmente consigliata (forse è per questo che lo hanno disabilitato in Win8?) Vedi IBM Real Time Clock per PC dovrebbe essere eseguito in UT e una risposta da Raymond Chen qui: Perché Windows mantiene l'orologio del BIOS all'ora locale? . Ad oggi non credo che ci sia una soluzione adeguata per questo.


5
buggy? non ha mai avuto problemi con esso, e forzare Windows a utilizzare un orologio di sistema UTC è davvero l'unica soluzione sana. e la chiave non è disabilitata in win8. la vera soluzione è impostare la chiave di registro, disattivare la sincronizzazione temporale di Windows e lasciare che Linux gestisca la sincronizzazione se si avvia abbastanza spesso.
pecore volanti

1
@flyingsheep Nel corso degli anni sono stati rilasciati alcuni hotfix, vedere Stato corrente del supporto in Windows su cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html
Stijn,

@Stijn Ottimo link, penso che dovresti trasformarlo in una risposta per una maggiore visibilità.
Marc.2377,

15

Il servizio Ora di Windows predefinito scriverà sempre l'ora locale sull'orologio hardware all'arresto, indipendentemente da ciò che dice il registro sull'ora reale in UTC. Al di fuori di questo avvertimento, Windows tratterà correttamente l'orologio hardware, se il registro è impostato correttamente. Prova questo:

  1. Se l'ora è incasinata nel tentativo di far utilizzare UTC a Windows, avviare Windows e impostare l'ora come sarebbe normalmente (fuso orario corretto, nessuna regedit, servizio ora di Windows abilitato, sincronizzazione recente, ecc.)
  2. Fai la regedit di cui hai già parlato
  3. Sincronizza l'ora w32tm /config /update
  4. Disabilita il servizio Ora di Windows sc config w32time start= disabled
  5. Installa un client NTP di terze parti
  6. Verifica che funzioni con un riavvio

1
Basta configurarlo da solo dopo che Windows ha impostato l'orologio ad ogni spegnimento. Trovato il seguente software NTP per Windows che è molto facile da installare e configurare. meinbergglobal.com/english/sw/ntp.htm
Dracs

Quel software sembra essere un riconfezionamento della distribuzione ufficiale NTP, con alcuni extra. Ad ogni modo, l'ho usato e l'ho trovato anche funzionante.
David Z,

10

RealTimeIsUniversalla chiave di registro funziona ancora in Windows 8 e 10! Ho appena provato da solo. Le istruzioni per utilizzare questo metodo sono spiegate molte volte ovunque, ad esempio in questa risposta .

Replicherò la risposta qui:

  1. Win+ S, regedit, Enter.

  2. Accedere alla chiave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation.

  3. Crea nuovo valore DWORD (32 bit), chiamalo RealTimeIsUniversal.

  4. Imposta il suo valore su 1.

Al termine, riavvia il computer. Dopo che è di nuovo attivo e funzionante, lascia che Windows imposti automaticamente l'ora (fai clic sull'ora corrente nella barra delle applicazioni, Date and Time Settings> Set Time Automatically), questa volta non si scherza.


0

@jiehanzheng sì, se usi NTP in Windows, rovinerà l'orologio. Sembra che la migliore soluzione alternativa sia eseguire NTP in qualsiasi tipo di * NIX che stai eseguendo il doppio avvio, disabilitare NTP in Windows e compensare utilizzando qualsiasi fuso orario di cui hai bisogno. Quindi devi solo regolare l'ora legale manualmente con un fuso orario in Windows, ma eh ..


0

RealTimeIsUniversalper me va bene. Per farlo funzionare, dopo aver applicato la voce di registro, chiudere Windows (non in modalità sospensione o ibernazione). Avviare la macchina e accedere al BIOS prima di avviare Windows, modificare l'ora nel BIOS, salvare, quindi continuare l'avvio in Windows. In alternativa, dopo aver spento Windows, avvia Linux e lascia che la sincronizzazione temporale faccia il suo lavoro. Se l'ora viene aggiornata da Windows, Windows aggiornerà in qualche modo un'ora errata al sistema dopo un riavvio.


1
Potresti collegarti a fonti che spiegano RealTimeIsUniversal? Non sapevo cosa fosse fino a quando non lo hai menzionato, e da una serie di risultati, sembra che abbia un proprio set di effetti collaterali potenzialmente negativi.
assassino

-1

RealTimeIsUniversal ha funzionato per me in Windows 10. E a metà dicembre 2016 funziona anche per Windows 7 Pro, senza riavviare in Linux.


-3

Potresti impostare il fuso orario solo quattro ore di pausa.

inserisci qui la descrizione dell'immagine


Soluzione alternativa intelligente ... ma l'orologio hardware e di sistema verrà nuovamente incasinato quando utilizzo NTP (Internet Time), giusto?
jiehanzheng,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.