web-dev-qa-db-fra.com

Qu'est-ce qui empêche Ubuntu 16.04 de régler l'heure correctement

J'ai un Dell SC1430 sous XUbuntu 16.04 faisant office de serveur principal Mythtv. Cela fonctionne bien depuis de nombreuses années mais maintenant, après la mise à niveau de 12.04 à 14.04 à 16.04 (avec do-release-upgrade), le temps système est désactivé de 2 heures et il ne peut pas être réglé à l'heure correcte.

Lorsque je, ou un mécanisme tel que ntpd ou timesyncd, essaie de régler l'heure, il revient immédiatement en arrière. Je reçois ceci dans syslog en essayant ntpd:

Sep 17 12:32:33 eddie ntpd[21484]: proto: precision = 0.131 usec (-23)
Sep 17 12:32:33 eddie ntpd[21484]: restrict 0.0.0.0: KOD does nothing without LIMITED.
Sep 17 12:32:33 eddie ntpd[21484]: restrict ::: KOD does nothing without LIMITED.
Sep 17 12:32:33 eddie ntpd[21484]: Listen and drop on 0 v6wildcard [::]:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen and drop on 1 v4wildcard 0.0.0.0:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen normally on 2 lo 127.0.0.1:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen normally on 3 eth0 192.168.1.11:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen normally on 4 lo [::1]:123
Sep 17 12:32:33 eddie ntpd[21484]: Listen normally on 5 eth0 [fe80::219:b9ff:fe22:9d01%2]:123
Sep 17 12:32:33 eddie ntpd[21484]: Listening on routing socket on fd #22 for interface updates
Sep 17 10:32:52 eddie systemd[28438]: Time has been changed
Sep 17 10:32:52 eddie ntpd[21484]: ntpd: time set -7188.398130 s
Sep 17 10:32:52 eddie systemd[2506]: Time has been changed
Sep 17 10:32:52 eddie systemd[1]: Time has been changed
Sep 17 12:32:41 eddie systemd[28438]: Time has been changed
Sep 17 12:32:41 eddie systemd[2506]: Time has been changed
Sep 17 12:32:41 eddie systemd[1]: Time has been changed

Comme vous pouvez le constater, le temps change en fait un instant, puis quelque chose le change en arrière.

Le statut Timedatectl me donne:

root@eddie:~# timedatectl status 
      Local time: Sun 2017-09-17 14:24:12 CEST
  Universal time: Sun 2017-09-17 12:24:12 UTC
        RTC time: Sun 2017-09-17 12:24:12
       Time zone: Europe/Stockholm (CEST, +0200)
 Network time on: no
NTP synchronized: no
 RTC in local TZ: no

UTC devrait être 10:24:12 et l'heure locale devrait être 12:24:12 dans cet exemple.

Ma meilleure hypothèse est qu'un autre programme/processus (essaye) de garder l'heure correcte, mais se confond avec le fuseau horaire ou quoi après la mise à niveau.

Comme je l'ai suggéré ci-dessus, j'ai essayé d'utiliser NTP à la place de l'approche timedatectl, mais le comportement est exactement le même.

Ce n'est pas une situation de double amorçage avec laquelle j'ai lu d'autres personnes ayant des problèmes.

Toute aide serait grandement appréciée!

3
erik

Je ne sais pas quel était le problème, mais je l'ai résolu en:

  1. Assurer que le service ntp ne démarre pas au démarrage (chmodding -x vers/usr/sbin/ntpd)
  2. Connexion via le clavier sur le serveur, par opposition à ssh d’un autre client.
  3. Réinitialisation du fuseau horaire et activation de "l'heure du réseau" dans l'interface graphique
  4. Redémarrage
  5. Assurer le service NTP est démarré au démarrage
  6. Redémarrage à nouveau

Quelques commentaires: Dans syslog, il semblait qu'un service systemd réinitialisait l'heure après avoir essayé de la régler correctement. Le processus id: s a révélé que ma connexion via ssh était responsable de l'un de ces processus et lightdm pour l'autre. Par conséquent, je me suis connecté via le clavier sur le serveur lui-même pour n'avoir qu'un seul service temps systemd en cours d'exécution.

En outre, le statut systemctl systemd-timesyncd.service a signalé:

● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
           └─disable-with-time-daemon.conf
   Active: inactive (dead)
Condition: start condition failed at Sun 2017-09-17 16:09:41 CEST; 4min 35s ago
           ConditionFileIsExecutable=!/usr/sbin/ntpd was not met

D'où la modification de/usr/sbin/ntpd

1
erik