FAQ: Синхронизация времени между Windows, Mac OS X и Ubuntu

Если вы хотите увидеть на нашем сайте ответы на интересующие вас вопросы обо всём, что связано с техникой Apple, операционной системой Mac OS X (и её запуском на PC), пишите нам через форму заявки на обзор или форму обратной связи.

К нам поступил следующий вопрос:

день добрый!
на хакинтоше стоят Snow Leopard, Windows 7 и Ubuntu. постоянно сбивается время после перезагрузки (( мак ос всегда его на 4-5 часов назад переводит!  подскажите, как исправить проблему

Проблема с синхронизацией времени актуальна не только для хакинтошей, но и для настоящих Маков, на которых Windows работает через Boot Camp. Её причина очень проста: Mac OS X всегда считает, что время, записанное в BIOS (или EFI), записано там в формате UTC — проще говоря, по Гринвичу. К нему она прибавляет соответствующую поправку на часовой пояс.

А Windows поступает иначе: она напрямую считывает время из BIOS. И если вы это время меняете, либо оно автоматически синхронизируется, то в BIOS оно запишется уже в исправленном формате: UTC+поправка.

Как решить это противоречие? Есть два подхода: один — со стороны Mac OS, другой — со стороны Windows и Linux.

Решение средствами Mac OS X

Сразу скажем — это не лучший способ. Суть в том, что для Mac OS X мы задаём в качестве часового пояса время по Гринвичу. Например, в настройках (пульт Дата и время, вкладка Часовой пояс) выберите в качестве своего населённого пункта Рейкьявик.

Кроме того, на вкладке «Дата и время» обязательно отключите автоматическую синхронизацию времени, иначе получится ещё хуже, чем было.

После этих действий время в Windows всегда будет правильным, и Mac OS X не будет его портить. Но почему это не лучший способ? Дело в том, что если вы синхронизируете с Mac OS X какой-нибудь гаджет — например, iPhone, то неправильный часовой пояс будет искажать многие важные данные. К примеру, время входящих SMS тоже окажется гринвичским.

Решение средствами Windows и Linux

Другой способ — это заставить Windows и Linux считывать время из BIOS так же, как это делает Mac OS. К счастью, такая возможность действительно предусмотрена, но спрятана она очень глубоко.

В Windows вам придётся запустить из окна «Выполнить» программу regedit Редактор реестра. Затем зайдите в ветку \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation и создайте там параметр DWORD с именем RealTimeIsUniversal и значением, равным единице:

В Linux (по крайней мере, в Ubuntu), необходимо отредактировать файл /etc/default/rcS в любом текстовом редакторе и заменить содержимое параметра «UTC=no» на «UTC=yes».

После этого перезагрузитесь в Mac OS X и выставите родной часовой пояс, заодно можете включить автоматическую синхронизацию времени через Интернет. После перезагрузки в Windows и Ubuntu вы увидите точно такое же время.