J'ai récemment rencontré le même problème et voici comment je l'ai résolu. Vous devez faire un petit changement dans les deux systèmes d'exploitation.
J'ai d'abord commencé avec Linux. Exécutez ces commandes suivantes en tant que root.
ntpdate pool.ntp.org
Cela mettra à jour votre heure si elle n'est pas définie correctement.
Réglez maintenant l'horloge matérielle sur UTC avec cette commande.
hwclock --systohc --utc
Source
Démarrez maintenant sous 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 vous indiqueront l'heure exacte.
Ni l'un ni l'autre n'est faux, mais utiliser 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é (dont il existe de nombreuses saveurs, et les règles changent arbitrairement), alors deux fois par an, vous devez aller le changer. Le système d'exploitation le fera pour vous, mais si le RTC est UTC, le système d'exploitation fait quand même la traduction UTC->local -- pourquoi jouer avec l'horloge ? De plus, pendant la transition DST "fall back", le RTC ne peut pas vous dire quelle heure il est ! Est-ce 1h30 HAC ou HNC ?
Apparemment, Windows 8 prend en charge UTC pour le RTC. Windows 7 l'a également fait, mais il y avait des problèmes.
Il y avait un meilleur argument contre cela lorsque les gens réglaient manuellement leurs horloges BIOS, mais l'heure basée sur le serveur est beaucoup plus répandue maintenant.
Le cas normal est que les systèmes Linux ont le RTC (horloge en temps réel) réglé sur UTC, et la conversion en heure locale est effectuée dans l'espace utilisateur en fonction des données de fuseau horaire et du TZ
variables d'environnement. C'est « moins mauvais » car cela permet au RTC du système d'augmenter de manière monotone et applique toute magie de fuseau horaire plus tard, garantissant par exemple qu'aucun fichier n'aura normalement d'horodatage à l'avenir (ce qui peut facilement se produire au moins une fois par an, si le système RTC est réglé sur l'heure locale). Comme Ken l'a souligné, le RTC lui-même n'a pas de concept de fuseau horaire, seulement le temps.
Comme vous l'avez constaté, cela pose des problèmes lors du double démarrage avec un système qui ne fonctionne pas normalement de cette façon, comme la famille de systèmes d'exploitation Microsoft qui s'attendent généralement à ce que le RTC soit défini sur local temps. Oui, Windows NT (je pense remonter jusqu'à NT 4, en fait) peut travailler avec le RTC réglé sur UTC, mais au moins j'ai regardé la dernière fois que ce n'était pas vraiment une configuration prise en charge et il y avait un certain nombre de mises en garde.
La solution simple dans votre cas est probablement de régler le RTC sur l'heure locale, d'indiquer à votre système Linux que le RTC est réglé sur l'heure locale (la mécanique exacte de cette opération varie selon la distribution et la version, mais apparemment dans Ubuntu, vous définissez UTC=no
dans /etc/default/rcS), puis configurez les systèmes d'exploitation de sorte qu'un seul un d'entre eux (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 la possibilité de le corriger) gère les changements d'heure d'été. Et vivez avec les inconvénients, qui devraient être gérables sur un système mono-utilisateur.
Vous pourriez également configurez le côté Windows pour utiliser UTC comme fuseau horaire et désactivez les changements automatiques d'heure d'été dans Windows, et laissez Linux configuré pour avoir le RTC en UTC et afficher l'heure convertie selon ses pratiques. Cependant, Windows affichera la date et l'heure en UTC, ce qui pourrait ne pas être ce que vous voulez vraiment. Ce n'est pas un gros problème pour nous, Européens, qui sommes au plus à trois heures de UTC, mais cela pourrait être plus un problème 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.