Problème avec systemd et le temps UTC

Hello,

J’ai un problème avec systemd qui me set le faux temps UTC automatiquement.

Voici les logs ce sera plus clair :
18:18:05 ntpd[8805]: ntpd: time set -3648.870430 s
18:18:05 systemd[1]: Time has been changed
19:18:54 systemd[1]: Time has been changed

La commande utilisée pour mettre la bonne heure : ntpd -qg
Utiliser timedatectl et mettre l’heure à la main produit exactement le même résultat.

Tout le système a été mis en UTC, adjtime compris pour éviter toute erreur. Si je force l’heure hardware manuellement, systemd continue de forcer la mauvaise heure.

Quelqu’un a une idée ?
Je crois que j’ai plus ou moins tout tester ce que j’ai trouvé :frowning:

Merci :wink:

Salut
As tu lu mon tuto sur le sujet?

Oui et si j’active timesyncd en ntp, le system change sans arrêt de plus ou moins une heure. NTP force 1h en moins et system 1h en plus en log cela donne ceci :

15:06:38  systemd-timesyncd[2179]: interval/delta/delay/jitter/drift 32s/-3488.416s/0.014s/0.037s/+0ppm
15:06:38  systemd[1]: Time has been changed
16:04:47  systemd[1]: Time has been changed
16:04:47  systemd-timesyncd[2179]: System time changed. Resyncing.
15:06:38  systemd-timesyncd[2179]: interval/delta/delay/jitter/drift 32s/-3488.406s/0.014s/0.046s/+0ppm
15:06:38  systemd[1]: Time has been changed
16:04:47  systemd[1]: Time has been changed
16:04:47  systemd-timesyncd[2179]: System time changed. Resyncing.
15:06:38  systemd-timesyncd[2179]: interval/delta/delay/jitter/drift 32s/-3488.395s/0.017s/0.036s/+0ppm
15:06:38  systemd[1]: Time has been changed
16:04:47  systemd[1]: Time has been changed
16:04:47  systemd-timesyncd[2179]: System time changed. Resyncing.
15:06:38  systemd-timesyncd[2179]: interval/delta/delay/jitter/drift 32s/-3488.385s/0.016s/0.029s/+0ppm
15:06:38  systemd[1]: Time has been changed
16:04:47  systemd[1]: Time has been changed
16:04:47  systemd-timesyncd[2179]: System time changed. Resyncing.
15:06:38  systemd[1]: Time has been changed
15:06:38  systemd-timesyncd[2179]: interval/delta/delay/jitter/drift 32s/-3488.379s/0.019s/0.024s/+0ppm
16:04:47  systemd[1]: Time has been changed
16:04:47  systemd-timesyncd[2179]: System time changed. Resyncing.
15:06:38  systemd[1]: Time has been changed
15:06:38  systemd-timesyncd[2179]: interval/delta/delay/jitter/drift 32s/-3488.371s/0.013s/0.040s/+0ppm
16:04:47  systemd[1]: Time has been changed
16:04:47  systemd-timesyncd[2179]: System time changed. Resyncing.
15:06:38  systemd[1]: Time has been changed
15:06:38  systemd-timesyncd[2179]: interval/delta/delay/jitter/drift 32s/-3488.360s/0.015s/0.032s/+0ppm
16:04:47  systemd[1]: Time has been changed
16:04:47  systemd-timesyncd[2179]: System time changed. Resyncing.
15:06:38  systemd-timesyncd[2179]: interval/delta/delay/jitter/drift 32s/-3488.352s/0.014s/0.025s/+0ppm
15:06:38  systemd[1]: Time has been changed
16:04:47  systemd[1]: Time has been changed

Sinon, tu peux t’assurer que le fuseau horaire est correctement défini en exécutant dpkg-reconfigure tzdata.

Bonjour nings grandtoubab Almtesh

@ nings Pourrais-tu nous donner le retour des commandes suivantes :

cat /etc/systemd/timesyncd.conf

cat /etc/timezone

timedatectl

et depuis le compte root :
systemctl status systemd-timesyncd.service

Merci.

Timedatectl n’as pas besoin de ntp en tant que daemon.
Timedatectl s’adresse directement à des serveurs de temps par son fichier de configuration

si tu choisis d’utiliser timedatectl , tu peux desinstaller ntp

Aucun ntp n’est installé sur ma machine et timedatectl maintient l’heure de mon PC

    root@debian:/# apt list ntp*
    En train de lister... Fait
    ntp/testing 1:4.2.8p9+dfsg-2 amd64
    ntp-doc/testing,testing 1:4.2.8p9+dfsg-2 all
    ntpdate/testing 1:4.2.8p9+dfsg-2 amd64
    ntpstat/testing,stable 0.0.0.1-1 amd64

root@debian:/# timedatectl
      Local time: dim. 2017-01-08 10:30:41 CET
  Universal time: dim. 2017-01-08 09:30:41 UTC
        RTC time: dim. 2017-01-08 09:30:41
       Time zone: Europe/Paris (CET, +0100)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Heure de la dernière synchro

ls -alrt /var/lib/systemd/clock
-rw-r--r-- 1 systemd-timesync systemd-timesync 0 janv.  8 10:00 /var/lib/systemd/clock

Almtesh => tout est configuré en UTC pour éviter le problème du fuseau horaire.
MicP =>

  • timesyncd.conf était vide car si je mettais un serveur ntp, il n’arrêtait de changer d’heure
  • timezone est configuré en UTC
  • timedatectl me donnait la mauvaise heure utc
  • le service était activé puis désactivé mais l’heure changeait quand même toute seule même après avoir désactivé le service
    grandtoubab => Oui, j’ai vu ça mais ce n’était pas ce service qui me forcait la fausse heure comme c’est noté dans les logs.

J’ai finalement trouvé une solution mais qui n’est vraiment pas top mais cela semble avoir réglé le problème mais il y a un bug quelque part avec systemd mais je n’ai pas réussi à trouver où.

La solution :

  • couper totalement la synchronisation du temps “systohc”, y compris au redémarrage
  • forcer l’heure correcte au niveau hardware
  • redémarrer avec la bonne heure UTC hardware pour qu’elle force la synchronisation de l’heure system
  • ensuite, l’heure UTC était correcte et j’ai pu enfin activer timedatectl en ntp pour synchroniser l’heure

Merci pour votre aide et si vous voulez, vous pouvez essayer de mettre une fausse heure UTC pour voir si votre système réagit de la même manière car il doit quand même y avoir un bug dans systemd. L’heure hardware peut être totalement fausse si la pile est morte mais ce n’est pas normal qu’on ne puisse pas la forcer…

Bonsoir

Normalement, si tu es en France, la valeur de timezone doit être Europe/Paris

J’aurais préféré avoir les valeurs retournées par les commandes (comme a fait grandtoubab) plutôt que ton interprétation de ces retours de commandes.

On fait ce qu’on peut avec ce qu’on a…

MicP si j’écris que j’ai configuré le temps en UTC, c’est que j’ai configuré le fuseau horaire sur UTC… Ce qui implique que la valeur du fichier timezone est celle-ci : Etc/UTC
Ce n’est pas de l’interprétation de commandes, c’est ce qu’il y avait.

Maintenant si vous voulez reproduire le problème, il faut désactiver la synchronisation du temps system vers le hardware lors de l’arrêt de la machine et modifier l’heure UTC hardware avec une valeur plus haute et désactiver la synchronisation du temps pour éviter qu’il switch d’heure tout le temps. Vous relancez votre machine et vous devriez avoir exactement le même problème que moi.
Autre solution pour reproduire le problème, désactiver la synchronisation du temps et modifier l’heure du bios en ajoutant une heure.

Ensuite vous pouvez essayer de modifier l’heure à la main de la machine et ajouter un serveur de temps, normalement l’heure devrait changer sans arrêt comme indiqué dans les logs que j’ai copié plus haut.

Salut,
Est ce que par hasard tu a installer un dualboot windows/linux sur ton ordi ?