Системное время является неправильным, пока я не использую Интернет …, но hwclock корректен

РЕАЛЬНОЕ ВРЕМЯ: 16:06

router@router:~$ sudo hwclock

*Sat 09 Jan 2016 04:06:55* [16:00 является фактическим временем]

router@router:~$ date

*Sat Jan 9 1:06:44 NPT 2016* [но человечность показывает время 13:00]

но как только я соединяю свой Интернет:

router@router:~$ date

*Sat Jan 9 16:06:44 NPT 2016* [13:00 исправляет к 16:00 только, когда я соединяю Интернет.... еще выигранный; t]

как синхронизировать время времени с hwclock???

1
задан 9 January 2016 в 15:39

1 ответ

hwclock не знает часовых поясов и летнего времени, и разные ОС по-разному справляются с этим. Поскольку старая DOS не знала никаких других часов, кроме RTC / hwclock, она была установлена ​​по местному времени. Я думаю, что это все еще по умолчанию для всех текущих систем Windows. По умолчанию в (большинстве?) Системах на основе Linux ожидается, что hwclock будет установлен в UTC.

Поскольку системы могут загружать несколько разных ОС, Linux не может требовать, чтобы hwclock находился в UTC. Для этого у него есть параметр для настройки времени от hwclock до kernelclock / UTC, если аппаратный час работает по местному времени. Программы обычно хотят показывать вам местное время, поэтому есть другой параметр для настройки часового пояса и перехода на летнее время.

Похоже, что в вашей системе есть несоответствие между вашим часами, коррекцией UTC и часовым поясом / летним временем.

Вы можете увидеть, что ваш hwclock работает с timedatectl, он покажет вам все данные, которые вы хотите:

Local time: za 2016-01-09 17:46:05 CET
Universal time: za 2016-01-09 16:46:05 UTC
RTC time: za 2016-01-09 16:46:05
Time zone: Europe/Amsterdam (CET, +0100)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Если я изменю свой hwclock на:

Local time: za 2016-01-09 17:52:10 CET
Universal time: za 2016-01-09 16:52:10 UTC
RTC time: za 2016-01-09 17:52:10
Time zone: Europe/Amsterdam (CET, +0100)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

и перезапустите *, hwclock будет использоваться для установки начального времени ядра. Hwclock выдаст мне 17:52 после перезапуска, а дата покажет мне неправильное местное время 18:52. После связи с ntp-сервером он корректирует время ядра, и вы снова увидите правильное время с датой.

* Некоторые дистрибутивы Linux в настоящее время устанавливают hwclock из системного времени при выключении, поэтому hwclock может быть настроен на UTC после перезапуска.

0
ответ дан 9 January 2016 в 15:39

Другие вопросы по тегам:

Похожие вопросы: