Если ваш заказ двойная загрузка Как в Windows, так и в Linux вы можете заметить, что синхронизировать системные часы невозможно. Как бы ни менялось время в одной операционной системе, проблема не решается в другой операционной системе. Это происходит из-за разногласий по поводу методологии хронометража между Windows и операционными системами на базе Linux. К счастью, есть относительно простое решение.
Почему это происходит?
Компьютер хранит текущее время в часах на материнской плате. Это позволяет компьютеру отслеживать время, даже когда компьютер выключен. Для расчета часовых поясов разные операционные системы используют разные методы. Windows предполагает, что местное время хранится на материнской плате, поэтому не применяется какое-либо смещение часового пояса. Для Nix, с другой стороны, он интерпретирует время на материнской плате как UTC (то есть среднее время по Гринвичу) и применяет компенсацию часового пояса для отображения местного времени.
Каждая из этих систем отлично работает независимо. Проблема возникает при двойной загрузке Windows и Linux с одной материнской платы. Когда операционные системы должны совместно использовать хранилище времени, часы не будут синхронизироваться.
Есть два разных способа решить эту проблему: мы можем изменить то, как Nix интерпретирует сохраненное время, или мы можем сделать то же самое в Windows.
Вариант 1. Заставьте Linux использовать местное время
Самый надежный способ привести Linux и Windows в соответствие со временем - это изменить методологию хронометража Linux. Хотя это явно не поддерживается, это немного надежнее, чем то же самое в Windows. Он работает с любым дистрибутивом Linux, использующим systemd, включая Ubuntu, Fedora, Red Hat, Debian и Mint. Изменение времени Windows обычно работает очень хорошо, но иногда это может привести к нестабильности в сторонних программах, которые ожидают, что сохраненное время будет локальным.
1. Откройте Терминал и выполните следующую команду:
timedatectl set-local-rtc 1 --adjust-system-clock
timedatectl set-local-rtc 0 --adjust-system-clock
Вариант 2. Заставьте Windows использовать UTC
Вы также можете изменить способ отображения системного времени в Windows. Это объяснение заставит Windows интерпретировать время, хранящееся на материнской плате, как UTC, что затем заставит Linux интерпретировать правильный часовой пояс. Хотя обычно это работает нормально, некоторые приложения полагаются на время материнской платы как на местное время. В результате это может вызвать проблемы с этими приложениями. Это делает этот вариант немного менее желательным, чем первый.
1. Отключите «Устанавливать время автоматически» в разделе «Время и язык» в приложении «Настройки». Это предотвратит возврат Windows к изменениям, которыми мы будем делиться.
2. Откройте редактор реестра, набрав regedit в меню «Пуск».
3. Найдите следующий раздел реестра на правой панели редактора реестра. Чтобы быстро туда добраться, вставьте местоположение в адресную строку редактора реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation
4. Щелкните правой кнопкой мыши кнопку «Информация о часовом поясе» на правой панели и выберите «Создать -> Значение DWORD (32-битное)» в контекстном меню.
5. Назовите новое значение «RealTimeIsUniversal».
6. Дважды щелкните созданное значение, установите для него значение «1», затем щелкните OK.
Заключение
Самый безопасный способ синхронизировать системные часы в системе с двойной загрузкой - это настроить то, как Linux интерпретирует время. Если это не работает для вас (или если вы используете macOS вместо Linux), вы также можете отредактировать реестр Windows, чтобы изменить способ интерпретации времени материнской платы Windows.