Если на вашей машине установлены Ubuntu и Windows, вы замечаете, что время “скачет” после перезагрузки из одной системы в другую. Сегодня мы расскажем, как исправить это.

Такой конфликт во времени между Windows и Ubuntu происходит из-за того, что по умолчанию Ubuntu хранит время в аппаратных часах в виде универсального скоординированного времени (UTC), а Microsoft Windows хранит время в локальном часовом поясе. Таким образом, при переключении между Ubuntu и Windows время показывается по-разному.

Исправить эту проблему достаточно просто, как из Ubuntu, так и из Windows.

Как исправить разницу во времени между Ubuntu и Windows

A. Изменить разницу между UTC и локальным временем между Ubuntu и Windows  из Ubuntu, чтобы Ubuntu использовала локальное время.

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

Для Ubuntu 16.04 и новее, выполните следующие команды:

timedatectl set-local-rtc 1

Проверить, использует ли Ubuntu локальное время вместо UTC, можно с помощью команды

timedatectl

Если вы используете Ubuntu предыдуших версий, до 16.04: нужно отредактировать файл /etc/default/rcS и заменить “UTC=yes” на “UTC=no” (без кавычек). Для того, чтобы сделать это автоматически, просто вставьте следующую команду в терминал:

sudo sed -i 's/UTC=yes/UTC=no/' /etc/default/rcS

После этого необходимо перезагрузить систему.

B. Исправляем из Windows (метод должен работать в Vista SP2, Windows 7, Server 2008 R2 и Windows 8/8.1), чтобы система использовала универсальное время вместо локального: загрузите этот файл реестра Windows и установите его двойным щелчком по имени файла.

Затем необходимо отключить службу времени Windows (которая продолжает записывать локальное время при выключении, независимо от параметров реестра), запустите командную строку от имени администратора и выполните следующую команду:

sc config w32time start= disabled

После этого необходимо перезагрузить систему.

Как вернуть изменения

A. Из Ubuntu: вернуть изменения из Ubuntu достаточно просто.

Ubuntu 16.04 и новее: для того, чтобы вернуть изменения, просто запустите следующую команду:

timedatectl set-local-rtc 0

Ubuntu версий до 16.04: всё, что нужно сделать, это заменить “UTC=no” на “UTC=yes” в файле /etc/default/rcS. Для того, чтобы сделать это автоматически, вставьте в терминал следующую команду:

sudo sed -i 's/UTC=no/UTC=yes/' /etc/default/rcS

После этого перезагрузите компьютер.

B. Из Windows: вернуть изменения в Windows чуть более сложно.

Для начала, откройте загруженный ранее файл .reg в текстовом редакторе и измените значение ключа “RealTimeIsUniversal” с “dword:00000001” на “-” (без кавычек). Вот как будет выглядеть файл после изменений:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=-

Сохраните файл и дважды кликните по нему.

Затем выполните следующую команду из командной строки (запущенной от имени администратора), чтобы разрешить запуск службы времени Windows:

sc config w32time start= demand

После этого перезагрузите компьютер.