Сбивается время компьютера (сервера) после выключения / перезагрузки

В этой статье рассмотрим, почему после выключения или перезагрузки ноутбука / компьютера / сервера в операционной системе могут сбрасываться текущие настройки даты и времени, указанные ранее. Рассмотрим, как самый банальный случая с севшей батарейкой BIOS, так и более интересные кейсы с мультизагрузкой Windows и Linux на одном компьютере, и багом прошивки на Windows серверах HPE ProLiant G9 /G8.

Не сохраняется время из-за севшей батарейка BIOS

Самый «классический» ответ на вопрос «Почему не сохраняется и сбивается время и дата на компьютере?» — севшая батарейка BIOS. Данная батарейка отвечает за сохранение настроек BIOS/ UEFI, когда ваш компьютер/ноутбук выключен из розетки, а также обеспечивает автономную работу встроенных аппаратных часов.

Если батарейка села, то при отключении питания материнской карты, BIOS не может сохранить свои настройки, и все они сбрасываются, в том числе и текущее дата и время. Если ваш компьютер довольно старый, вероятность того, что у вас села батарейка крайне велика. Настоятельно рекомендуем ее заменить. Сделать это не сложно, и, как правило, особых инженерных навыков процесс замены батарейки BIOS не требует. В большинстве домашних систем используется в BIOS стандартная батарейка CR2032 на 3 вольта.

bios замена старой батарейки

Если замена батарейки не помогла, проверьте состояние перемычки сброса настроек BIOS (джампер с перемычкой расположен рядом с отсеком для батарейки и может быть подписан как CCMOS / CLEAR / RESET). Возможно кто-то оставил данный джампер в положении «сброса», в результате чего при каждой подачи питания на мат.плату, настройки BIOS обнуляются. Верните джампер в нормальное положение.

Следующий вариант – обновление прошивки BIOS материнской карты (как это сделать – смотрите на сайте производителя вашего железа). Часто в более новых прошивках исправляются различные баги.

Настройки часового пояса и синхронизации времени с time.windows.com

В том случае, если у вас постоянно меняются настройки даты//времени в Windows, в первую очередь стоит проверить текущие настройки часового пояса и параметры синхронизации времени с интернетом. В Windows 10 текущие настройки времени можно посмотреть в меню панели инструментов (Панель управления\Часы, язык и регион -> Дата и время). В этом примере видно, что указан часовой пояс UTC + 03, переход на зимнее время отключен.

часовой пояс windows

Совет. Вы можете управлять часовым поясом Windows из командой строки с помощью утилиты tzutil.

Если ваш компьютер не в домене, проверьте настройки синхронизации времени с внешним источником времени (сервером времени NTP). В этом случае в этом же окне щелкните по вкладке «Время по Интернету» и проверьте, что компьютер настроен на автоматическую синхронизацию времени с сервером time.windows.com.

Совет. Напомню, что с 2014 года в России отменен переход на летнее время. Возможно вы давно не обновляли свою ОС (Windows 8 и ниже) и у вас не установлены обновления, отключающие переход на летнее время.

Синхронизация времени в домене Windows

Если ваш компьютер входит в состав домена Active Directory, то информацию о том как работает синхронизация времени в домене можно получить из этой статьи.

Сбивается время при переключении между Linux и Windows (Dual Boot)

Отдельно стоит рассмотреть конфигурации, когда на компьютере установлены две операционные системы (Windows и Linux) в конфигурации двойной загрузки (Dual Boot). Вы можете столкнуться с проблемой, что после переключения между операционными системами (загрузки в Linux после Windows) сбивается время на несколько часов вперед или назад.

Windows и Linux по разному работают с временем BIOS. Дело тут в наличии двух форматов представления времени UTC и localtime.

Операционные системы GNU/Linux (в том числе Mac OS X) считают, что время в BIOS указано в формате UTC (по Гринвичу). Соответственно, при загрузке Linux для преобразования UTC к локальному времени добавляет (отнимает) смещение текущего часового пояса, который выбрал пользователь. Т.е. чтобы получить локальное время для часового пояса Москвы UTC+3, Linux добавит 3 часа.

Windows же считает, что в время в BIOS хранится в формате localtime, и если вы указали новый часовой пояс, или синхронизировали время с внешним источником, система соответственным образом меняет время в BIOS на локальное время. Linux (Ubuntu в моем случае) считает, что время в BIOS указано в формате UTC и дополнительно добавляет смещение часового пояса. Именно поэтому и сбивается время при переключении между Linux и Windows.

Чтобы исправить такую ситуацию, нужно переключить Windows на использование времени в формате UTC с помощью параметра реестра RealTimeIsUniversal.

reg add "HKLMACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f

RealTimeIsUniversal

Совет. В 64 битных версиях Windows нужно создавать параметр типа QWORD вместо DWORD: reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

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

sc config w32time start= disabled

Осталось перезагрузить Windows.

Либо можно переключить Linux на использование локального времени. В Ubuntu 15.04 и выше и CentOS это можно сделать командой timedatectl:

timedatectl set-local-rtc 1

Сбивается время после перезагрузки на серверах HP с Windows Server

На серверах HPE DL/ML Gen9 с Windows Server 2008 R2 / 2012 R2 у одного из удаленных заказчиков столкнулись с интересной проблемой после смены часового пояса. Как оказалось, на серверах HP ProLiant Gen9 (и на одном из серверов HP ProLiant DL580 Gen8) при изменении системного времени или часового пояса, после перезагрузки сервера, системное время не сохранялось и сбрасывалось на предыдущее. Проблема были подвержены сервера, в которых Windows Server загружается в режиме Legacy (при нативной UEFI загрузки проблемы отката времени не было).

В журнале системы при этом появлялось такое событие:

The system time has changed to ‎2018‎-‎04‎-‎29T12:12:28.500000000Z from ‎2018-‎04‎-‎29T13:12:27.923115700Z.
Change Reason: System time synchronized with the hardware clock.

В качестве решения проблемы HP предлагает обновить ROM до версии не менее 1.5. Именно в этой версии ROM-Based Setup Utility (RBSU) не подвержена багу со сбросом временм.

Либо в качестве обходного решения, можно указать, чтобы Windows считала, что BIOS отдает ей системное время в формате UTC (а не локальное время). Для этого, как мы уже говорили выше нужно создать в ключе реестра HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation параметр с именем RealTimeIsUniversal и значением 1.


Предыдущая статья Следующая статья


Комментариев: 3 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)