Вопрос или проблема
Детали системы:
WSL2: Ubuntu 24.04.1
Win11: 23H2 сборка 22631.4037
Версия WSL: 2.2.4.0
Ядро: 5.15.153.1-microsoft-standard-WSL2
В ‘journalctl’ (‘dmesg’) и ‘syslog’ я вижу много сообщений ‘Обнаружена смена часов. Очистка кэшей.’ и ‘Время прыгнуло назад, вращение.’
См. Редактирование 2 ниже.
Похоже, что это началось вскоре (почти сразу) после обновления WSL2 с Ubuntu 22.04.5 на Ubuntu 24.04.1.
Я сделал обновление 2024-09-12 и получил сообщение “Обновление системы завершено.” в 17:40.
Я подозреваю, что это приводит к тому, что journalctl не ведет постоянные записи.
Даже при наличии /var/log/journal/ и настройке ‘Storage=persistent’ в ‘/etc/systemd/journald.conf’.
Старые сообщения journalctl, похоже, потеряны, даже после нескольких часов.
В чем может быть проблема?
На 13:00 самые старые сообщения, которые появляются, всего чуть больше часа назад:
$ journalctl
15 сен 11:35:31 DESKTOP-E6DGEM9 systemd-resolved[292]: Обнаружена смена часов. Очистка кэшей.
15 сен 11:35:31 DESKTOP-E6DGEM9 systemd-journald[50]: Время прыгнуло назад, вращение.
При этом система работала более 15 часов:
$ uptime
13:00:46 up 15:35, 2 users, load average: 0.10, 0.05, 0.01
Пока я видел запись, начинающуюся с ‘Обнаружена смена часов. Очистка кэшей.’
Я пытался исправить это, удалив содержимое ‘/var/log/journal/’ с помощью:
systemctl status systemd-journald
sudo systemctl stop systemd-journald-dev-log.socket
sudo systemctl stop systemd-journald.socket
sudo systemctl stop systemd-journald
sudo rm /var/log/journal/* -rf
sudo systemctl start systemd-journald
но без изменений.
Впервые увидено в ‘/var/log/syslog’
2024-09-12T18:13:41.079123+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:13:41.079123+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:14:12.855185+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:14:44.510248+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:15:16.254113+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:15:47.900499+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:16:19.571240+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:16:51.214299+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:17:22.709058+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:17:54.230828+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:18:25.739595+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
<пропущено>
2024-09-12T18:26:18.238966+02:00 DESKTOP-E6DGEM9 systemd-resolved[269]: Обнаружена смена часов. Очистка кэшей.
2024-09-12T18:26:18.240566+02:00 DESKTOP-E6DGEM9 kernel: systemd-journald[50]: Время прыгнуло назад, вращение.
Не уверен, связано ли это с синхронизацией времени.
NTP:
$ timedatectl
Локальное время: Вс 2024-09-15 14:10:00 CEST
Всемирное время: Вс 2024-09-15 12:10:00 UTC
Время RTC: Вс 2024-09-15 12:10:01
Часовой пояс: Европа/Амстердам (CEST, +0200)
Системные часы синхронизированы: да
Служба NTP: активна
RTC в местном TZ: нет
$ timedatectl timesync-status
Сервер: 185.125.190.57 (ntp.ubuntu.com)
Интервал опроса: 32с (мин: 32с; макс 34мин 8с)
Ключ: нормальный
Версия: 4
Стратум: 2
Справка: B7A08584
Точность: 1мк (-25)
Корневая дистанция: 815мк (макс: 5с)
Смещение: -2.699961с
Задержка: 19.915мс
Дёргание: 22.693мс
Количество пакетов: 1885
Чистота: -43.497ppm
Редактирование 1 (2024-09-21):
Я создал резервную копию Ubuntu 24.04.1 и восстановил свою резервную копию Ubuntu 22.04.5.
С Ubuntu 22.04.5 журналирование ‘journalctl’ снова работает нормально:
$ journalctl -t systemd-resolved
10 сен 21:12:04 DESKTOP-E6DGEM9 systemd-resolved[210]: Положительные доверительные анкорные записи:
10 сен 21:12:04 DESKTOP-E6DGEM9 systemd-resolved[210]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
10 сен 21:12:04 DESKTOP-E6DGEM9 systemd-resolved[210]: Отрицательные доверительные анкорные записи: home.arpa 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.in-а>
10 сен 21:12:04 DESKTOP-E6DGEM9 systemd-resolved[210]: Используется системное имя хоста 'DESKTOP-E6DGEM9'.
-- Загрузка 6c5874aebd5d4e689223fd8c16b621db --
20 сен 20:32:24 DESKTOP-E6DGEM9 systemd-resolved[226]: Положительные доверительные анкорные записи:
20 сен 20:32:24 DESKTOP-E6DGEM9 systemd-resolved[226]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
20 сен 20:32:24 DESKTOP-E6DGEM9 systemd-resolved[226]: Отрицательные доверительные анкорные записи: home.arpa 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.in-а>
20 сен 20:32:24 DESKTOP-E6DGEM9 systemd-resolved[226]: Используется системное имя хоста 'DESKTOP-E6DGEM9'.
$ journalctl -t systemd-journald
10 сен 21:12:02 DESKTOP-E6DGEM9 systemd-journald[46]: Журнал начат
10 сен 21:12:02 DESKTOP-E6DGEM9 systemd-journald[46]: Время работы журнала (/run/log/journal/b745815e4a31140e822ee92b63e6aa28) составляет 8.0M, макс 388.4M, 380.4M свободно.
10 сен 21:12:02 DESKTOP-E6DGEM9 systemd-journald[46]: Время, затраченное на очистку до /var/log/journal/b745815e4a31140e822ee92b63e6aa28 составляет 8.963мс для 438 записей.
10 сен 21:12:02 DESKTOP-E6DGEM9 systemd-journald[46]: Системный журнал (/var/log/journal/b745815e4a31140e822ee92b63e6aa28) составляет 4.0G, макс 4.0G, 0B свободно.
-- Загрузка 6c5874aebd5d4e689223fd8c16b621db --
20 сен 20:32:23 DESKTOP-E6DGEM9 systemd-journald[46]: Журнал начат
20 сен 20:32:23 DESKTOP-E6DGEM9 systemd-journald[46]: Время работы журнала (/run/log/journal/b745815e4a31140e822ee92b63e6aa28) составляет 8.0M, макс 388.4M, 380.4M свободно.
20 сен 20:32:23 DESKTOP-E6DGEM9 systemd-journald[46]: Время, затраченное на очистку до /var/log/journal/b745815e4a31140e822ee92b63e6aa28 составляет 129.966мс для 438 записей.
20 сен 20:32:23 DESKTOP-E6DGEM9 systemd-journald[46]: Системный журнал (/var/log/journal/b745815e4a31140e822ee92b63e6aa28) составляет 3.3G, макс 4.0G, 659.8M свободно.
И самые старые сообщения с апреля:
$ sudo journalctl
30 апр 21:09:01 DESKTOP-E6DGEM9 CRON[1789623]: pam_unix(cron:session): сеанс открыт для пользователя root(uid=0) (uid=0)
30 апр 21:09:01 DESKTOP-E6DGEM9 CRON[1789624]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && если [ ! -d /run/systemd/system ]; тогда /usr/lib/php/sessionclean; fi)
30 апр 21:09:01 DESKTOP-E6DGEM9 CRON[1789623]: pam_unix(cron:session): сеанс закрыт для пользователя root
Может, мне стоит рассмотреть возможность чистой установки Ubuntu 24.04.1 для следующей попытки…
/Редактирование 1
Редактирование 2 (2024-09-21)
Сравнивая с Ubuntu 22.04.5, я заметил следующее:
$ timedatectl
Локальное время: Сб 2024-09-21 11:29:36 CEST
Всемирное время: Сб 2024-09-21 09:29:36 UTC
Время RTC: Сб 2024-09-21 09:29:36
Часовой пояс: Европа/Амстердам (CEST, +0200)
Системные часы синхронизированы: да
Служба NTP: неактивна
RTC в местном TZ: нет
Итак, с 22.04.5 служба NTP ‘неактивна’.
systemd-timesyncd.service не должен запускаться из-за: “Условие Virtualization=!container не выполнено”
$ systemctl status systemd-timesyncd.service
○ systemd-timesyncd.service - Синхронизация сетевого времени
Загружено: загружено (/lib/systemd/system/systemd-timesyncd.service; включено; предустановка поставщика: включено)
Активно: неактивно (мертв)
Условие: условие запуска не выполнено в Сб 2024-09-21 11:30:29 CEST; 29мин назад
└─ Условие Virtualization=!container не выполнено
Документы: man:(8)
20 сен 20:32:24 DESKTOP-E6DGEM9 systemd[1]: Результат проверки условия привел к пропуску синхронизации сетевого времени.
21 сен 11:30:29 DESKTOP-E6DGEM9 systemd[1]: Результат проверки условия привел к пропуску синхронизации сетевого времени.
Итак, с Ubuntu 22.04.5 ‘systemd-timesyncd.service’ не запускается.
Но с 24.04.1 у меня было следующее:
10:51:04 17 сен 00:58:32 DESKTOP-E6DGEM9 systemd[1]: Запуск systemd-timesyncd.service - Синхронизация сетевого времени...
<пропущено>
10:51:04 17 сен 00:58:32 DESKTOP-E6DGEM9 systemd[1]: Запущено systemd-timesyncd.service - Синхронизация сетевого времени.
Это должно быть перед тем, как я вносил какие-либо изменения в настройки, связанные со временем.
Если кто-то сталкивается с той же проблемой, можете проверить с помощью systemctl status systemd-timesyncd.service
, активна ли синхронизация сетевого времени?
/Редактирование 2
Я снова обновил до Ubuntu 24.04.1 и решил проблему следующими шагами:
systemctl status systemd-timesyncd.service
sudo systemctl stop systemd-timesyncd.service
# неактивен (мертв) с Вс 2024-09-29 20:26:55 CEST
sudo systemctl disable systemd-timesyncd.service
После остановки службы сообщения Обнаружена смена часов. Очистка кэшей.
действительно прекратились.
Чтобы предотвратить запуск службы timesyncd, я также отключил ее.
journalctl -S "2024-09-29 20:00" -t systemd-resolved
# последнее сообщение: 29 сен 20:26:32
Ответ или решение
Для решения проблемы с журналом системы в WSL2 (Ubuntu 24.04.1), которая проявляется в сообщениях "Clock change detected. Flushing caches." и "Time jumped backwards, rotating", а также в отсутствии постоянных записей в journalctl
, следуйте приведенным ниже шагам.
Причина проблемы
Проблема, скорее всего, связана с активированным сервисом Network Time Synchronization (systemd-timesyncd.service
), который, судя по всему, вызывает сброс кэша и "перескок" времени. Это возникает из-за частого изменений системного времени, что мешает устойчивой работе системы ведения журналов.
Шаги по устранению проблемы
-
Проверка состояния времени ситемы
На начальном этапе проверим состояние службы синхронизации времени:systemctl status systemd-timesyncd.service
Если служба активна, это может быть источником проблемы.
-
Остановите службу синхронизации времени
Если служба активна, ее необходимо остановить:sudo systemctl stop systemd-timesyncd.service
-
Отключить автоматический запуск службы
Чтобы предотвратить повторный запуск службы, отключите ее:sudo systemctl disable systemd-timesyncd.service
-
Проверка изменений в журнале
После выполнения вышеуказанных команд проверьте, исчезли ли сообщения о сбросе кэша. Для этого выполните:journalctl -t systemd-resolved
Обратите внимание, что ваша последняя запись должна быть до того времени, когда проблемы начались.
-
Сброс кэша журнала
Если сообщения продолжают появляться, возможно, потребуется сбросить кэш журналов, выполнив:sudo systemctl restart systemd-journald
Дополнительные советы
- Убедитесь, что ваше система времени (NTP) работает корректно и что ваш часовой пояс настроен правильно с использованием команды
timedatectl
. - Если проблема сохраняется, возможно, имеет смысл рассмотреть возможность выполнения чистой установки Ubuntu 24.04.1 в WSL2, если в процессе обновления возникли дополнительные проблемы с конфигурацией.
Заключение
После выполнения всех шагов, вы должны заметить улучшение. Остановка и отключение службы systemd-timesyncd
должно устранить сообщения о сбросе времени и восстановить функциональность журнала. Убедитесь, что ваша система остается синхронизированной с временем, используя другие методы, если это необходимо.