Le problème
Sur mon laptop, j’ai récemment réinstallé Windows 10 en dual boot avec Linux Mint.
Lorsque je redémarre Windows (après m’être connecté sur Mint), l’horloge est décalée d’une heure.
Bien que l’heure va se resynchroniser, cela peut poser problème aux programmes qui démarrent avec votre session.
(par exemple pour skype4business qui refuse de se connecter si l’heure n’est pas correcte).
Le pourquoi ?
Les systèmes d’exploitations Linux et Windows ne gèrent pas l’horloge de la même façon.
Sur la plupart des distributions Linux, l’horloge matérielle (celle configurée dans le BIOS) correspond à l’heure UTC (Temps Universel Coordonné = GMT). C’est donc à travers les fichiers de votre configuration locale que l’heure locale est affichée une fois votre distribution démarrée.
Sous Windows, l’horloge matérielle correspond à l’heure locale.
Si je reviens à mon cas, sous Linux l’horloge matérielle est sur GMT mais sous Windows GMT+1 (heure de Bruxelles)
Comment on le règle ?
« Easy« , il faut faire en sorte que les deux systèmes traitent l’horloge matérielle de la même façon, ouais mais encore ?
Voici ce que j’ai trouvé après plusieurs recherches.
Il faut évidemment ne changer le comportement que d’un des deux systèmes d’exploitations, sinon c’est retour à la case « départ ».
1. Sous Linux – mettre à jour le fichier « /etc/default/rcS »
Apparemment sous Ubuntu, il faudrait éditer le fichier « /etc/default/rcS » avec la ligne
UTC=no
J’ai écris « apparemment », parce que bien que Mint et Ubuntu « descendent » toutes les deux de Debian,
ça n’a pas réglé mon problème, mais peut-être que sur Ubuntu c’est OK.
2. Sous Linux – mettre à jour le fichier « /etc/adjtime«
Si ce fichier n’existe pas, votre distribution assume que l’horloge matérielle est réglée pour UTC.
Vous pouvez également le vérifier avec la commande « timedatectl », nous nous intéressons à la dernière ligne (RTC in local TZ)
Pour changer cette configuration et faire en sorte que l’horloge matérielle soit égale à l’heure locale (comme sous Windows),
vous devez exécuter la commande suivante (en super-user):
sudo timedatectl set-local-rtc 1
Cette commande ne retourne rien, mais vous pouvez ré-exécuter la commande « timedatectl » pour vérifier
« RTC in local TZ » est bien passé de « no » à « yes »
Vous pouvez également vérifier qu’un fichier /etc/adjtime a été généré.
Si vous souhaitez annuler ce changement, vous pouvez de 2 façons:
- Supprimer le fichier
- Exécutez la même commande mais pour désactiver, « sudo timedatectl set-local-rtc 0«
3. Sous Windows
Il faut créer une clé dans la base des registres,
le plus simple étant de copier le texte suivant dans un fichier avec l’extension .reg et d’exécuter ce fichier.
On trouve différentes versions sur Internet, la seule différence étant le type de la valeur
- hexadecimal
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
« RealTimeIsUniversal »=hex(b):01,00,00,00,00,00,00,00
- dword
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
« RealTimeIsUniversal »=dword:00000001
- qword
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
« RealTimeIsUniversal »=qword:00000001
Vous pouvez évidemment également créer cette valeur manuellement via « regedit ».
infos complémentaires :
J’ai fait le choix de changer le paramètre dans windows, afin de ne pas avoir de problème quand je booterai avec d’autres systèmes linux (sur clé USB notamment).
J’ai donc modifié manuellement la base de registre de windows comme indiqué ci-dessus.
Au début ça ne fonctionnait pas, j’ai compris que dword, c’est pour les systèmes 32 bits et qword, pour les systèmes 64bits.
Pour créer un fichier .reg, pour les systèmes 64bits, la version qword n’est pas reconnue, il faut copier la version en hexadecimal qui est codé sur 8 octets (8 groupes de 00), soit 64bits
Attention, lors du copier coller dans le bloc note les guillemets (qui viennent de la page web) ne sont pas reconnu, il faut les supprimer et les saisir à nouveau : remplacement de « » par » »
Le changement est pris en compte au redémarrage de windows. Il faudra refaire une mise à l’heure de windows. Pour vérifier si ça fonctionne bien, l’horloge du bios sera réglée sur l’heure universelle UTC alors que dans windows ça sera l’heure française. (le même principe que pour linux).
___________________________________________________________________
Pour résumer, créer un fichier texte « adjust_time_zone.reg » et y copier :
-pour les sytèmes 64bits – testé sous Win10(64bit) :
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
« RealTimeIsUniversal »=hex(b):01,00,00,00,00,00,00,00
– pour les systèmes 32bits – testé sous WinXP(32bits):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
« RealTimeIsUniversal »=dword:00000001
– pour supprimer ce paramètre :
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
« RealTimeIsUniversal »=-
_____________________________
voir aussi : https://ubuntuplace.info/questions/446/lheure-de-lhorloge-est-desactivee-sur-le-double-demarrage
bonjour à tous….
Merci Seb, pour cette info, et……. Ce qui est génial, c’est que ça fonctionne..c’est précis….c’est Pas compliqué…
Je viens de tester la cle sous Windows : avant j'[avais 2 heures de retard, mais maintenant j’ai 2 heures d’avance sous windows ! Je ferais d’autres tests ce soir.
Aaah merci 🙂