Forcer Windows 8 à utiliser UTC pour gérer l'horloge du BIOS

18

J'ai Arch Linux + Windows 8 sur mon ordinateur portable. Dans les versions précédentes de Windows, il y a un DWORD dans le registre ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal) qui bascule entre l'heure locale et UTC, mais cela ne semble plus fonctionner sous Windows 8.

Je reçois maintenant l'heure UTC dans Windows car il pense que le BIOS lui donne l'heure locale qui est en fait l'heure UTC, et après le redémarrage dans Arch Linux, l'horloge devient heure locale-0400, car Arch pense que le BIOS a l'heure UTC correcte.

Je ne veux pas laisser Arch Linux utiliser l'heure locale. Sous cette condition préalable, existe-t-il une solution possible?

jiehanzheng
la source
1
La clé RealTimeIsUniversal a bien fonctionné pour moi, Arch Linux à double démarrage également.
numéros1311407

Réponses:

3

RealTimeIsUniversal est vraiment bogué et n'est pas une solution officiellement recommandée (c'est peut-être pourquoi ils l'ont désactivé dans Win8?) Voir IBM PC Real Time Clock devrait fonctionner en UT et une réponse de Raymond Chen ici: Pourquoi Windows conserve-t-il votre horloge BIOS à l'heure locale? . À ce jour, je ne pense pas qu'il existe une solution appropriée à cela.

Karan
la source
5
petit chariot? n'a jamais eu de problème, et forcer Windows à utiliser une horloge système UTC est vraiment la seule solution sensée. et la clé n'est pas désactivée dans win8. la vraie solution consiste à définir la clé de registre, à désactiver la synchronisation horaire de Windows et à laisser Linux gérer la synchronisation si vous y démarrez suffisamment souvent.
vol de moutons le
1
@flyingsheep Au fil des ans, quelques correctifs ont été publiés, voir État actuel du support dans Windows sur cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html
Stijn
@Stijn Excellent lien, je pense que vous devriez en faire une réponse pour plus de visibilité.
Marc.2377
15

Le service d'heure Windows par défaut écrit toujours l'heure locale sur l'horloge matérielle à l'arrêt, indépendamment de ce que le registre dit sur l'heure réelle en UTC. En dehors de cette mise en garde, Windows traitera correctement l'horloge matérielle si le registre est correctement configuré. Essaye ça:

  1. Si l'heure est foirée d'essayer d'obtenir que Windows utilise UTC, démarrez dans Windows et définissez l'heure comme elle le serait normalement (fuseau horaire correct, pas de regedit, service de temps Windows activé, récemment synchronisé, etc.)
  2. Faites le regedit que vous avez déjà mentionné
  3. Synchroniser l'heure w32tm /config /update
  4. Désactiver le service Windows Time sc config w32time start= disabled
  5. Installer un client NTP tiers
  6. Vérifiez qu'il fonctionne avec un redémarrage
JumperPunk
la source
1
Configurez-le moi-même après avoir réglé l'heure de Windows à chaque arrêt. Trouvé le logiciel NTP suivant pour Windows qui est très facile à installer et à configurer. meinbergglobal.com/english/sw/ntp.htm
Dracs
Ce logiciel semble être un reconditionnement de la distribution officielle NTP, avec quelques extras. Quoi qu'il en soit, je l'ai utilisé et j'ai également trouvé qu'il fonctionnait.
David Z
10

RealTimeIsUniversalla clé de registre fonctionne toujours sous Windows 8 et 10! Je l'ai testé par moi-même. Les instructions pour utiliser cette méthode sont expliquées de nombreuses fois partout, par exemple dans cette réponse .

Je vais reproduire la réponse ici:

  1. Win+ S, regedit, Enter.

  2. Accédez à la clé: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation.

  3. Créez une nouvelle valeur DWORD (32 bits), nommez-la RealTimeIsUniversal.

  4. Définissez sa valeur sur 1.

Après cela, redémarrez simplement votre machine. Une fois qu'il est de nouveau opérationnel, laissez Windows régler l'heure automatiquement (cliquez sur l'heure actuelle dans la barre d'état, Date and Time Settings> Set Time Automatically), cette fois, il ne s'en occupera pas.

TranslucentCloud
la source
0

@jiehanzheng oui, si vous utilisez NTP dans Windows, cela gâchera l'horloge. Il semble que la meilleure solution consiste à exécuter NTP dans la version * NIX que vous démarrez en double, à désactiver NTP dans Windows et à compenser en utilisant le fuseau horaire dont vous avez besoin. Ensuite, il vous suffit d'ajuster l'heure d'été manuellement avec un décalage de fuseau horaire dans Windows, mais eh ..

wajeemba
la source
0

RealTimeIsUniversaltravaille pour moi. Pour le faire fonctionner, après avoir appliqué l'entrée de registre, fermez Windows (pas de veille ou d'hibernation). Démarrez la machine et entrez dans le BIOS avant de démarrer dans Windows, modifiez l'heure dans le BIOS, enregistrez, puis poursuivez le démarrage dans Windows. Alternativement, après avoir fermé Windows, démarrez sous Linux et laissez la synchronisation de l'heure faire son travail. Si l'heure est mise à jour à partir de Windows, Windows mettra à jour en quelque sorte une heure incorrecte sur le système après un redémarrage.

user416162
la source
1
Pourriez-vous créer un lien vers des sources qui expliquent RealTimeIsUniversal? Je ne savais pas ce que c'était jusqu'à ce que vous en parliez, et d'après un certain nombre de résultats, il semble qu'il est livré avec son propre ensemble d'effets secondaires potentiellement négatifs.
killermist
-1

RealTimeIsUniversal a fonctionné pour moi dans Windows 10. Et à la mi-décembre 2016, il fonctionne également pour mon Windows 7 Pro, sans redémarrer sous Linux.

Kevin O'Gorman
la source
-3

Vous pouvez simplement régler votre fuseau horaire de quatre heures.

entrez la description de l'image ici

Caleb Jares
la source
Solution de contournement intelligente ... mais l'horloge matérielle et système sera de nouveau gâchée lorsque j'utiliserai NTP (Internet Time), non?
jiehanzheng