Я использую Arch Linux. Недавно, когда я включил свой ПК, системное время было установлено на 1:00 1 января 1970 года — предположительно, 1:00 часов — это результат сдвига часового пояса.
Есть ли у кого-нибудь идеи, почему systemd
системное время устанавливается неправильно?
Некоторые полезные выводы (я думаю)...
[root@alex-desktop network.d]# timedatectl status
Local time: Sun 2013-06-09 16:33:04 BST
Universal time: Sun 2013-06-09 15:33:04 UTC
RTC time: Sun 2013-06-09 15:18:50
Timezone: Europe/London (BST, +0100)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2013-03-31 00:59:59 GMT
Sun 2013-03-31 02:00:00 BST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2013-10-27 01:59:59 BST
Sun 2013-10-27 01:00:00 GMT
решение1
У меня была похожая проблема с Raspberry Pi (которыйвидимоне имеетРТК), так что либо вы используете похожее устройство, на котором его тоже нет (маловероятно), либо ваш компьютер немного устарел и батарея RTC, также известная какБатарея КМОПиссяк.
Согласно вашим данным, timedatectl status
у вас уже включен NTP, который должен запросить сервер времени и установить время для вас. Однако, похоже, это не работает, если вы не подключены к Интернету, когда время устанавливается при загрузке компьютера, что может произойти, если вы используете WLAN, и подключение занимает много времени.
В конце концов, моим решением стало добавление задания cron для root ( su -c "crontab -e"
), которое будет запускаться ntpd -s
раз в минуту для принудительной проверки времени, например так:
# sync network time every minute (this is sad)
* * * * * ntpd -s
Задача решена.
нтпдСтраница руководства ntpd.confупоминает minpoll
опцию, которая якобы может быть использована для проверки ntpd с частотой 8 секунд. Это, очевидно, в 9000 раз лучше, и я обновлю свой ответ, если это сработает так, как ожидалось.