Ce problème est du au fait que Windows et Linux n’enregistrent pas l’heure de la même manière sur la carte mère. Pas défaut, Windows enregistre l’heure local, alors que Linux lui, enregistre l’heure UTC et applique un décalage ensuite.
C’est pour cette raison que systématiquement Windows avait deux heures de décalage pour moi. (J’avais également un décalage lorsque je démarrais sur Ubuntu, mais il faisait une synchronisation avec les serveurs de temps directement, ce que Windows ne faisait pas).
Comment on corrige ça ?
J’ai au départ voulu faire un petit script qui synchronisait l’horloge au lancement de Windows, mais après quelques recherches sur Internet, je me suis vite aperçu qu’il y avait bien plus simple comme solution.
L’une des solutions consiste à dire à Windows d’enregistrer l’heure UTC. Mais cette opération nécessite une modification au niveau du registre, ce n’est pas le plus pratique.
L’autre solution, c’est d’écrire une petite commande dans Linux qui va indiquer à l’OS d’enregistrer l’heure local.
timedatectl set-local-rtc 1
(Note: cette commande est uniquement valide à partir de Ubuntu 15.04, je n’ai pas testé d’autres distribution).
(Note2: pour revenir à la situation initiale, il suffit de désactiver le local-rtc en faisant timedatectl set-local-rtc 0
Cependant, en faisant la commande timedatectl status
, nous avons un avertissement:
Warning: The system is configured to read the RTC time in the local time zone.
This mode can not be fully supported. It will create various problems with time zone changes and daylight saving time adjustments. The RTC time is never updated, it relies on external facilities to maintain it. If at all possible, use RTC in UTC by calling 'timedatectl set-local-rtc 0’.
Je ne sais pas dans quelle mesure ces problèmes peuvent survenir. Donc il faudra que je test sur du plus long terme.
Source: https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts (décrit notamment comment faire l’opération pour corriger le problème sur Windows avec le registre)