Сообщение «system time synchronized with the hardware clock» в журнале systemd — это не ошибка, а информационная запись о том, что служба синхронизации времени (обычно systemd-timesyncd или chrony) сверила системные часы с аппаратными часами RTC. Однако если такая запись появляется слишком часто, сопровождается сбоями времени или скачками даты, стоит разобраться в причинах.
В этой статье разберём, что означает это сообщение, как устроена синхронизация времени в Linux, в каких случаях запись сигнализирует о проблеме и как проверить корректность работы часов на вашем компьютере или сервере.
Что означает это сообщение в журнале
Запись генерируется подсистемой синхронизации времени и означает, что системное время (software clock, которое отсчитывает ядро Linux) было приведено в соответствие с аппаратными часами RTC (Real-Time Clock) — микросхемой на материнской плате, работающей от батарейки даже при выключенном питании.
Такая синхронизация происходит в штатных ситуациях:
- 🕐 при загрузке системы — ядро считывает время из RTC;
- 🔄 при корректном завершении работы — системное время записывается обратно в RTC;
- 🌐 после успешной синхронизации по NTP-протоколу с сервером времени;
- ⚙️ при ручном изменении времени командой
timedatectlилиhwclock.
То есть само по себе сообщение — признак нормальной работы службы времени. Беспокойство должны вызывать лишь его частота и сопутствующие симптомы.
Как устроена синхронизация времени в Linux
В системе существуют два независимых источника времени. RTC — это аппаратные часы с собственным кварцевым генератором и элементом питания (обычно батарейка CR2032). Они тикают постоянно, но точность их невысока: уход может составлять секунды в сутки. Системные часы ядра стартуют от показаний RTC при загрузке, а дальше поддерживаются прерываниями таймера и корректируются по сети.
Служба systemd-timesyncd периодически опрашивает NTP-серверы и плавно подстраивает системное время. После успешной коррекции она может записать обновлённое значение в аппаратные часы — именно тогда в журнале и появляется разбираемое сообщение.
Сообщение «system time synchronized with the hardware clock» — штатная запись о сверке системного времени с RTC. Проблемой оно становится только при частом повторении или скачках времени.
Типичные причины частого появления записи
Если сообщение повторяется в журнале подозрительно часто или время на машине «прыгает», возможные причины следующие:
- 🔋 Севшая батарейка RTC — часы сбрасываются при каждом выключении, и системе приходится заново синхронизировать время;
- 🌍 Нестабильный NTP-сервер или сеть — служба получает противоречивые данные и многократно корректирует часы;
- 💻 Dual boot с Windows — Windows трактует RTC как локальное время, а Linux по умолчанию как UTC, из-за чего часы «перескакивают» после каждой смены ОС;
- 🖥️ Виртуальная машина — гипервизор периодически подсовывает гостю время хоста;
- ⏰ Ручные изменения времени скриптами или администратором.
⚠️ Внимание: резкие скачки системного времени могут нарушить работу баз данных, планировщика cron, TLS-сертификатов и распределённых систем. Прежде чем менять настройки синхронизации на сервере, оцените, какие службы зависят от монотонного хода часов.
Диагностика: как проверить состояние часов
Начните с базовой проверки статуса синхронизации. Выполните в терминале:
timedatectl status
Обратите внимание на строки System clock synchronized (должно быть yes), NTP service (активна ли служба) и RTC in local TZ (критично при dual boot). Для просмотра самих записей в журнале используйте:
journalctl -u systemd-timesyncd --since today
Дополнительно проверьте расхождение системного времени и RTC командой sudo hwclock --show и сравните с выводом date. Небольшая разница в пределах секунд — норма, существенное расхождение — повод искать причину.
☑️ Проверка синхронизации времени
Конфликт Windows и Linux при двойной загрузке
Самая распространённая причина «гуляющего» времени на домашних машинах — dual boot. Windows по традиции хранит в RTC локальное время, а Linux ожидает там UTC и добавляет смещение часового пояса программно. В результате после каждой перезагрузки в другую ОС часы смещаются на величину вашего пояса, и служба синхронизации фиксирует это в журнале.
Решение — привести обе системы к единому соглашению. Проще всего на стороне Linux разрешить локальное время в RTC:
timedatectl set-local-rtc 1
Либо, что считается более правильным, настроить Windows на работу с UTC через параметр реестра RealTimeIsUniversal. Конкретный способ зависит от версии Windows — сверьтесь с официальной документацией Microsoft перед изменением реестра.
После команды timedatectl set-local-rtc 1 перезагрузитесь в обе системы и убедитесь, что время в них совпадает. Если смещение осталось — проверьте часовой пояс в каждой ОС.
Когда виновата батарейка RTC
Если время сбрасывается на дату много лет назад после каждого отключения питания, а в журнале после загрузки видны резкие коррекции — почти наверняка разрядился элемент питания RTC. На настольных ПК это обычно батарейка CR2032 на материнской плате, на ноутбуках — отдельный аккумулятор CMOS, иногда несъёмный.
Замена на десктопе несложна: обесточьте компьютер, извлеките старый элемент из гнезда и установите новый с соблюдением полярности. После этого выставите время в BIOS/UEFI и загрузите систему. На ноутбуках доступ к батарейке CMOS зависит от модели — иногда требуется частичная разборка, поэтому сверьтесь с сервисной документацией производителя.
⚠️ Внимание: перед заменой батарейки полностью отключите питание и извлеките аккумулятор ноутбука, если он съёмный. Работа на включённом устройстве может повредить материнскую плату.
Сравнение источников проблем со временем
| Причина | Симптом | Способ проверки |
|---|---|---|
| Севшая батарейка RTC | Сброс даты при отключении питания | Выключить ПК на ночь, проверить время в BIOS |
| Dual boot Windows/Linux | Смещение на величину часового пояса | timedatectl — строка RTC in local TZ |
| Проблемы с NTP | Частые коррекции, статус synchronized: no | journalctl -u systemd-timesyncd |
| Виртуализация | Время повторяет часы хоста | Настройки синхронизации гипервизора |
| Ручные изменения | Разовые скачки в журнале | Аудит команд date/hwclock в истории |
Почему нельзя просто отключить синхронизацию
Отключение NTP оставит систему на милость неточных аппаратных часов RTC, уход которых накапливается со временем. Для серверов это критично: расхождение времени ломает проверку сертификатов, логирование и работу кластеров. Правильный путь — устранить причину сбоев, а не отключать службу.
Как настроить корректную синхронизацию
Убедитесь, что NTP-синхронизация включена и работает с надёжными серверами. Активировать службу можно командой:
timedatectl set-ntp true
Список используемых серверов задаётся в конфигурации systemd-timesyncd (файл /etc/systemd/timesyncd.conf) или в настройках chrony, если используется она. Пути и формат конфигурации могут отличаться в зависимости от дистрибутива — проверьте документацию вашей системы. После правок перезапустите службу и снова проверьте статус через timedatectl.
Ключевой признак здоровой конфигурации: сообщение о синхронизации с hardware clock появляется в журнале редко — при загрузке и после плановых коррекций, а время между перезагрузками не скачет.
⚠️ Внимание: не запускайте одновременно две службы синхронизации (например, systemd-timesyncd и chrony) — они будут конфликтовать, и в журнале появятся постоянные коррекции времени. Оставьте активной только одну.
Устраняйте причину сбоев (батарейка, dual boot, конфликт служб), а не само сообщение — оно лишь симптом работы механизма синхронизации.
Часто задаваемые вопросы
Это сообщение — ошибка?
Нет, это информационная запись. Ошибкой она становится только в контексте: если время реально скачет или сбрасывается, сообщение помогает отследить момент коррекции.
Почему время смещается ровно на 3 часа (или на величину моего пояса)?
Классический признак конфликта трактовки RTC между Windows и Linux при двойной загрузке. Одна система считает RTC локальным временем, другая — UTC.
Можно ли запретить запись системного времени в RTC?
Да, поведение настраивается в зависимости от дистрибутива и службы синхронизации, но делать это без необходимости не стоит: после жёсткой перезагрузки система стартует с устаревшим временем RTC.
Как понять, что пора менять батарейку на материнской плате?
Отключите компьютер от сети на несколько часов, затем включите и зайдите в BIOS/UEFI. Если дата и время сбросились — элемент питания RTC разряжен и требует замены.
Влияет ли это сообщение на производительность системы?
Нет, запись в журнал и сама операция сверки часов практически не потребляют ресурсов. Влияние оказывают лишь последствия неверного времени для других служб.