Гид по технологиям

Исправление расхождений времени при двойной загрузке Windows и Linux

8 min read Системы Обновлено 23 Dec 2025
Исправить время при dual-boot Windows и Linux
Исправить время при dual-boot Windows и Linux

Быстрая навигация

Краткое резюме

  • Аппаратные часы (RTC) на материнской плате сохраняют время при выключенном компьютере. Windows по умолчанию считает это локальным временем, Linux — UTC. При двойной загрузке одна ОС может показывать неверное время.
  • На Linux с systemd переключиться на локальное время можно командой:
timedatectl set-local-rtc 1 --adjust-system-clock
  • На Windows можно включить хранение времени в UTC через правку реестра (создать RealTimeIsUniversal = 1), но это менее совместимо с некоторыми приложениями и службой синхронизации времени.

Важно: не выполняйте одновременно оба подхода — тогда системы будут по-прежнему «говорить на разных языках». Лучше изменить только одну систему.


Что происходит и почему возникают проблемы

Компьютер хранит время в аппаратных часах (RTC) на материнской плате. При загрузке ОС читает значение RTC и применяет смещение к часовому поясу в зависимости от того, считает ли RTC хранящееся значение локальным временем или временем UTC. Если Windows считает RTC локальным временем, а Linux — UTC, то после загрузки одной из систем время покажет смещение (чаще всего на ± разницу часового пояса).

Короткая дефиниция: RTC — аппаратный реальный таймер на материнской плате, который продолжает работать при отключенном питании.

Причины, почему Windows исторически использует локальное время:

  • Обратная совместимость с очень старыми версиями Windows и BIOS, где пользователи вручную устанавливали локальное время.
  • Отсутствие единого стандарта в BIOS/UEFI для пометки, хранится ли время в UTC или локальном времени.

Сделать Linux использующим локальное время

Рекомендуемый и обычно наименее проблемный вариант — настроить Linux так, чтобы он хранил RTC в локальном времени, как Windows. Это особенно применимо, если вы используете Windows чаще и не хотите менять её поведение.

Подходит для: систем с systemd (современные версии Ubuntu, Fedora, Debian, Mint, Red Hat и т.д.).

Шаги:

  1. Откройте Терминал в Linux.
  2. Выполните команду:
timedatectl set-local-rtc 1 --adjust-system-clock
  1. Команда не выводит подробный ответ. Чтобы проверить статус, выполните:
timedatectl

Ищите строку RTC in local TZ: yes — это подтверждение.

Если нужно вернуть поведение по умолчанию (UTC), выполните:

timedatectl set-local-rtc 0 --adjust-system-clock

Пояснения и замечания:

  • Команда --adjust-system-clock корректно подстроит системное время во время переключения, чтобы избежать скачков времени.
  • Режим хранения RTC в локальном времени может вызывать проблемы при изменении часовых поясов и при переходе на/с летнего времени; systemd предупреждает об этом. Тем не менее, он обычно безопаснее, чем изменение поведения Windows.

Критерии приёмки

  • После перезагрузки обе ОС показывают одно и то же локальное время.
  • timedatectl показывает RTC in local TZ: yes.

Чек-лист для администратора

  • Выполнен бэкап важных настроек (особенно если удалённый сервер).
  • Проверена поддержка systemd на дистрибутиве.
  • [ ] Выполнена команда с --adjust-system-clock.
  • Проверена корректность времени после перезагрузки.

Сделать Windows использующим UTC

Переключить Windows на использование UTC возможно через редактирование реестра, но это потенциально менее совместимо с некоторыми приложениями и с интернет-службой синхронизации времени Windows. Этот вариант имеет смысл, если вы хотите привести Windows в соответствие с Unix-подходом (UTC) и готовы тестировать совместимость.

Подготовка

  1. Отключите автоматическую синхронизацию времени в Windows, чтобы служба не перезаписала часы во время изменений.

    • Windows 10/11: Параметры → Время и язык → отключите “Set time automatically”.
    • Windows 7: правый клик по часам → Изменить дату и время → вкладка “Internet Time” → “Change settings” → снимите галочку “Synchronize with an Internet time server”.
  2. Резервная копия реестра: создайте точку восстановления или экспортируйте соответствующие ключи реестра.

Изменение реестра

  1. Нажмите Start, введите regedit и запустите Редактор реестра.
  2. Перейдите к ключу:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
  1. Правый клик по TimeZoneInformation → New → DWORD (32-bit) Value.
  2. Назовите значение RealTimeIsUniversal.
  3. Дважды кликните по созданному значению, установите значение 1 и нажмите OK.

После этого Windows начнёт хранить время в UTC.

Откат

Чтобы вернуть поведение по умолчанию, просто удалите значение RealTimeIsUniversal из того же ключа.

Риски и замечания

  • Некоторые программы (особенно устаревшие) могут ожидать аппаратные часы в локальном времени и привести к ошибкам.
  • Служба интернет-синхронизации Windows может конфликтовать; её нужно настроить или отключить.

Чек-лист для пользователя

  • Создана точка восстановления системы.
  • Отключена синхронизация времени в настройках Windows.
  • [ ] Правильно добавлен ключ RealTimeIsUniversal со значением 1.
  • Проверена совместимость сторонних приложений.

Загрузочный регистр и готовые .reg файлы

Если вы не хотите вручную править реестр, можно использовать заранее подготовленные .reg файлы: один включает RealTimeIsUniversal=1, другой удаляет эту запись. Перед запуском любого .reg файла откройте его через Блокнот, чтобы проверить, какие ключи он меняет.

Важно: скачивайте такие файлы только из доверенных источников и при необходимости просмотрите их содержимое.


Что насчёт dual-boot Windows на Mac

macOS использует UTC, как Linux. В большинстве случаев Boot Camp драйверы Apple правильно обрабатывают синхронизацию времени при загрузке Windows, поэтому дополнительных действий не требуется. Исключение — системы типа Hackintosh, где Boot Camp отсутствует; в таком случае имеет смысл применить Windows-реестр RealTimeIsUniversal.


Почему Windows использует локальное время

Коротко: историческая обратная совместимость. Ранние версии Windows и BIOS сохраняли локальное время, и производители ПК следовали этому поведению. Отсутствие стандарта для пометки времени в BIOS/UEFI закрепило ситуацию, поэтому Windows и производители продолжили использовать локальное время.


Альтернативные подходы и когда это не сработает

  1. Использовать стороннюю службу синхронизации времени в Linux/Windows, которая корректирует показания при запуске. Минус — это обходное решение и оно может конфликтовать с системными службами времени.
  2. Настроить скрипт при загрузке, который корректирует системное время чтением с сетевого NTP-сервера и применением нужного смещения. Подходит для продвинутых пользователей, но усложняет поддержку.
  3. На серверах и критичных системах лучше оставить RTC в UTC и настраивать все серверные процессы с учётом UTC; для рабочих станций удобнее локальное время.

Когда это не сработает

  • Если BIOS/UEFI или прошивка аппаратно привязаны к локальному времени и корректировки ломают аппаратное поведение (редко, но возможно).
  • Если у вас устройства/приложения, которые напрямую читают RTC и ожидают локальное время; в этом случае перевод Windows в UTC может вызвать сбои.

Мини-методология принятия решения

  1. Определите, какая ОС для вас первична (Windows или Linux).
  2. Оцените совместимость критичных приложений с хранением времени в UTC.
  3. Если у вас много приложений под Windows, и вы не хотите тестировать их — переключите Linux на локальное время.
  4. Если вы управляете серверами или строго придерживаетесь UTC в инфраструктуре — переключайте Windows на UTC и тщательно тестируйте.
  5. Документируйте выбранное решение и создайте план отката.

Ролевые чек-листы

Администратор/IT-специалист

  • Проверил политики компании относительно времени и аудита.
  • Создал бэкап реестра и точку восстановления.
  • Тестировал изменения на одной машине перед массовым развёртыванием.
  • Обновил документацию и уведомил пользователей.

Домашний пользователь

  • Выбрал одну систему для изменения (обычно Linux).
  • Сделал снимок/резервную копию важных данных (на случай непредвиденного поведения).
  • Применил команду в Linux или значение реестра в Windows.
  • Перезагрузил и проверил время в обеих ОС.

Решение в виде диаграммы (decision tree)

flowchart TD
  A[Есть dual-boot Windows + Linux?] -->|Нет| Z[Нет проблемы]
  A -->|Да| B[Какая ОС приоритетна?]
  B -->|Windows| C[Переключить Linux на локальное время]
  B -->|Linux/Servers| D[Рассмотреть переключение Windows на UTC]
  C --> E[Выполнить `timedatectl set-local-rtc 1 --adjust-system-clock`]
  D --> F[Отключить синхр. времени; добавить RealTimeIsUniversal=1]
  E --> G[Проверить `timedatectl` и перезагрузить]
  F --> H[Проверить приложения и перезагрузить]
  G --> I[Обе ОС показывают одно время?]
  H --> I
  I -->|Да| Y[Готово]
  I -->|Нет| X[Вернуть изменение и тестировать]

Частые вопросы и ответы

Q: Можно ли одновременно установить локальное время и UTC в обеих ОС, чтобы они “договаривались”?
A: Нет — нужно выбрать один формат хранения RTC. Если вы выполните обе настройки, системы останутся несовместимыми.

Q: Поможет ли просто синхронизация NTP?
A: Служба NTP корректирует системное время после загрузки, но при чтении RTC и применении смещения ОС всё ещё может показывать расхождение до момента синхронизации. Для надежного решения рекомендуется выровнять формат RTC.


Глоссарий (одна строка)

  • RTC: аппаратные часы на материнской плате, сохраняющие время при выключении.
  • UTC: всемирное координированное время без смещений локальных часовых поясов.
  • Local time (локальное время): время с учётом вашего часового пояса.

Практические тесты и критерии приёмки

Тесты, которые стоит выполнить после изменения:

  1. Перезагрузите компьютер в каждую ОС и проверьте время по системному трею.
  2. Выполните синхронизацию с NTP-сервером вручную и сравните: в Linux sudo timedatectl set-ntp true и timedatectl status.
  3. Для Windows проверьте, не конфликтует ли служба времени со сторонними приложениями (календарь, планировщики задач).

Критерии приёмки:

  • Время не меняется неконтролируемо при переключении ОС.
  • Все критичные приложения работают корректно после изменения.
  • Документация обновлена и есть план отката.

Когда нужно откатить изменения и как это сделать

Причины отката:

  • Появились ошибки в программах, которые зависят от локального времени RTC.
  • Сбой синхронизации времени на серверах или в сетевом окружении.

Откат Linux → UTC:

timedatectl set-local-rtc 0 --adjust-system-clock

Откат Windows → локальное время: удалить значение RealTimeIsUniversal в реестре или запустить .reg, который удаляет запись.


Итог

Если вы ищете простое и безопасное решение для рабочего ПК с двойной загрузкой, чаще всего проще настроить Linux на использование локального времени командой timedatectl set-local-rtc 1 --adjust-system-clock. Если же вы администрируете серверную инфраструктуру или предпочитаете единообразие с Unix-подходом, можно переключить Windows на хранение времени в UTC через реестр, но это требует тестирования совместимости. В любом случае документируйте изменения и делайте резервные копии.

Важно: изменяйте только одну из систем — либо Linux, либо Windows — чтобы обе «говорили на одном языке» по времени.

Скачать образы и готовые .reg файлы можно использовать только из доверенных источников и только после проверки содержимого .reg в Блокноте.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как сбросить Amazon Echo и вернуть Alexa
Руководство

Как сбросить Amazon Echo и вернуть Alexa

Как открыть терминал в Ubuntu — быстрые способы
Linux

Как открыть терминал в Ubuntu — быстрые способы

apt-get в Ubuntu: установка и управление пакетами
Linux

apt-get в Ubuntu: установка и управление пакетами

Apple Watch: обнаружение падений и экстренные контакты
Гаджеты

Apple Watch: обнаружение падений и экстренные контакты

Защита WordPress: 5 простых шагов
Безопасность

Защита WordPress: 5 простых шагов

Отключить тачпад в Windows 11 — быстро
Windows

Отключить тачпад в Windows 11 — быстро