48 votes

Heure locale de Windows ou de Linux ?

Depuis que j'ai commencé à utiliser Linux en dualboot avec Windows, j'ai remarqué que lorsque je redémarrais la machine, l'heure sur l'autre système d'exploitation était erronée, par exemple il était 12:00 sur Linux, puis j'ai redémarré et sur Windows il était 18:00, et lorsque j'ai vérifié le BIOS, le RTC était réglé sur 18:00. Comme mon fuseau horaire est -06:00 CST, je suppose que Linux règle l'heure du RTC sur UTC et recalcule l'heure en fonction du fuseau horaire, alors que Windows règle le RTC sur l'heure locale. Les deux utilisent le même serveur NTP pour synchroniser l'heure.

La question est de savoir lequel des deux fait le bon choix. Sur lequel des deux je dois régler le fuseau horaire sur UTC afin d'avoir la bonne heure sur les deux ?

77voto

moe3144 Points 1

J'ai récemment rencontré le même problème et voici comment je l'ai résolu. Vous devez effectuer un petit changement dans les deux systèmes d'exploitation.

J'ai commencé par Linux. Exécutez les commandes suivantes en tant que root.

ntpdate pool.ntp.org

Si le réglage n'est pas correct, l'heure sera mise à jour.

Réglez maintenant l'horloge matérielle sur UTC à l'aide de cette commande.

hwclock --systohc --utc

Source

Démarrez maintenant Windows et ajoutez le registre suivant. Créez simplement un fichier .reg en utilisant le code ci-dessous dans le Bloc-notes. Enregistrez-le et exécutez-le.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001

Source

À partir du prochain démarrage, les deux systèmes d'exploitation afficheront l'heure exacte.

18voto

Daniel Von Fange Points 123

Ni l'un ni l'autre n'est mauvais, mais l'utilisation de l'UTC est plus juste. Le RTC n'a pas de fuseau horaire ; c'est juste une horloge murale stupide. Si votre fuseau horaire local respecte l'heure d'été (il en existe de nombreuses variantes et les règles changent arbitrairement), vous devez le modifier deux fois par an. Le système d'exploitation le fera pour vous, mais si le RTC est UTC, le système d'exploitation fait de toute façon la conversion UTC->local -- pourquoi jouer avec l'horloge ? De plus, pendant la transition DST, le RTC ne peut pas vous dire quelle heure il est ! Est-il 1h30 CDT ou CST ?

Apparemment, Windows 8 prend en charge l'UTC pour le RTC. Windows 7 l'a également fait, mais il y a eu des problèmes .

Il y avait un meilleur argument contre cela Il y a longtemps, les gens réglaient manuellement l'horloge de leur BIOS, mais l'heure basée sur le serveur est beaucoup plus répandue aujourd'hui.

5voto

user Points 28521

Dans le cas normal, les systèmes Linux ont l'horloge en temps réel (RTC) réglée sur l'UTC, et la conversion à l'heure locale est effectuée dans l'espace utilisateur sur la base des données du fuseau horaire et de l'horloge en temps réel. TZ variable d'environnement. Cette solution est "moins mauvaise" car elle maintient l'augmentation monotone du RTC du système, et applique la magie du fuseau horaire plus tard, garantissant par exemple qu'aucun fichier n'aura normalement un horodatage dans le futur (ce qui peut facilement se produire au moins une fois par an, si le RTC du système est réglé sur l'heure locale). Comme l'a souligné Ken Le RTC lui-même n'a pas de notion de fuseau horaire, il n'a que l'heure.

Comme vous l'avez constaté, cela pose des problèmes en cas de double démarrage avec un système qui ne fonctionne pas normalement de cette manière, comme les systèmes d'exploitation de la famille Microsoft, qui s'attendent généralement à ce que le RTC soit réglé sur local temps. Oui, Windows NT (je pense que cela remonte à NT 4, en fait). puede fonctionner avec le RTC réglé sur UTC, mais du moins la dernière fois que j'ai regardé, ce n'était pas vraiment une configuration prise en charge et il y avait un certain nombre de mises en garde.

La solution la plus simple dans votre cas est probablement de régler l'horloge à l'heure locale, d'indiquer à votre système Linux que l'horloge est réglée à l'heure locale (la procédure exacte varie en fonction de la distribution et de la version, mais il n'y a pas de raison de ne pas le faire). apparemment, dans Ubuntu, vous définissez UTC=no dans /etc/default/rcS ), puis configurer les systèmes d'exploitation de manière à ce que seuls les systèmes un (de préférence celui que vous utilisez le plus, car l'heure affichée dans tous les autres sera incorrecte deux fois par an, jusqu'à ce qu'il ait été démarré et ait eu l'occasion de la corriger). l'heure d'été changements. Et s'accommoder des inconvénients, qui devraient être gérables sur un système mono-utilisateur.

Vous pouvez également paramétrer Windows pour utiliser l'UTC comme fuseau horaire et désactiver les changements automatiques de l'heure d'été dans Windows, et garder Linux paramétré pour avoir le RTC en UTC et afficher l'heure convertie en fonction de ses pratiques. Cependant, Windows affichera alors la date et l'heure en UTC, ce qui n'est peut-être pas ce que vous souhaitez vraiment. Ce n'est pas un gros problème pour nous, Européens, qui avons au maximum trois heures de décalage par rapport à l'UTC, mais cela pourrait être plus problématique aux États-Unis. Cette option est probablement plus réaliste si vous n'utilisez Windows qu'occasionnellement, et que votre système d'exploitation principal est Linux ou un autre système d'exploitation compatible RTC-UTC.

2voto

Si vous démarrez en double et qu'il y a des conflits de temps entre Ubuntu, cela se produit parce qu'Ubuntu st l'horloge matérielle en UTC par défaut, tandis que Microsoft Windows enregistre l'heure en l'heure locale, ce qui provoque des conflits de temps entre Ubuntu et Windows.

Vous devez configurer votre système Linux pour qu'il utilise l'heure locale comme expliqué dans ce guide pour Ubuntu .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X