Проблема с временем в Windows и Linux
Одна из самых распространённых и раздражающих проблем при использовании Windows и Linux на одном компьютере — постоянная рассинхронизация системного времени.
Понимание проблемы
Заголовок раздела «Понимание проблемы»Как работает время в Linux
Заголовок раздела «Как работает время в Linux»Linux по умолчанию использует UTC в качестве аппаратного времени:
- Система читает время из BIOS как UTC
- Применяет смещение часового пояса
- Отображает локальное время пользователю
Пример: Если в BIOS 12:00 UTC, а вы в часовом поясе UTC+3, Linux покажет 15:00.
Как работает время в Windows
Заголовок раздела «Как работает время в Windows»Windows использует локальное время напрямую:
- Система читает время из BIOS как локальное
- Отображает его без преобразований
- При изменении времени записывает локальное время обратно в BIOS
Пример: Если в BIOS 15:00, Windows покажет 15:00 (без учёта часового пояса).
Что происходит при переключении
Заголовок раздела «Что происходит при переключении»- Загружаетесь в Linux → Linux читает время как UTC и добавляет смещение
- Перезагружаетесь в Windows → Windows читает это же время как локальное
- Результат: Время в Windows сбито на величину вашего часового пояса!
Решение проблемы
Заголовок раздела «Решение проблемы»Существует два подхода к решению:
- Настроить Linux на использование локального времени (не рекомендуется)
- Настроить Windows на использование UTC
Мы будем использовать второй подход, так как он более правильный с технической точки зрения.
Шаг 1: Определение разрядности системы
Заголовок раздела «Шаг 1: Определение разрядности системы»Прежде чем выполнять команду, нужно определить, какая у вас версия Windows — 32-битная или 64-битная.
Как узнать разрядность:
- Нажмите Win + Pause/Break
- Или: Параметры → Система → О системе
- Найдите строку “Тип системы”
Скорее всего, у вас 64-битная система (это стандарт для современных компьютеров).
Шаг 2: Выполнение команды настройки реестра
Заголовок раздела «Шаг 2: Выполнение команды настройки реестра»-
Откройте командную строку от имени администратора
-
В зависимости от разрядности вашей системы, выполните соответствующую команду
Для 64-битных систем (наиболее распространённый вариант):
Заголовок раздела «Для 64-битных систем (наиболее распространённый вариант):»Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1Для 32-битных систем (редко встречается):
Заголовок раздела «Для 32-битных систем (редко встречается):»Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1После выполнения команды вы должны увидеть сообщение:
Операция успешно завершена.или
The operation completed successfully.Шаг 4: Отключение службы синхронизации времени
Заголовок раздела «Шаг 4: Отключение службы синхронизации времени»Чтобы Windows не пыталась “исправить” время обратно, необходимо отключить службу автоматической синхронизации:
sc config w32time start= disabledПосле выполнения вы увидите:
[SC] ChangeServiceConfig SUCCESSРезультат
Заголовок раздела «Результат»После выполнения всех шагов:
- Время в Windows всегда корректное
- Время в Linux всегда корректное
- Не нужно вручную корректировать часы
- Проблема решена навсегда
Откат изменений
Заголовок раздела «Откат изменений»Если по какой-то причине вам нужно вернуть всё обратно:
Удаление параметра реестра:
Заголовок раздела «Удаление параметра реестра:»Reg delete HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /fВключение службы синхронизации:
Заголовок раздела «Включение службы синхронизации:»sc config w32time start= autoПосле этого перезагрузите компьютер.