У цій статті розглянемо, чому після виключення або перезавантаження ноутбука / комп'ютера / сервера в операційній системі можуть скидатися поточні настройки дати та часу, зазначені раніше. Розглянемо, як самий банальний випадку з сіла батарейкою BIOS, так і більш цікаві кейси з мультизагрузка Windows і Linux на одному комп'ютері, і багом прошивки на Windows серверах HPE ProLiant G9 / G8.
зміст:
- Чи не зберігається час через сіла батарейка BIOS
- Налаштування часового поясу і синхронізації часу з time.windows.com
- Синхронізація часу в домені Windows
- Збивається час при перемиканні між Linux і Windows (Dual Boot)
- Збивається час після перезавантаження на серверах HP з Windows Server
Чи не зберігається час через сіла батарейка BIOS
Самий "класичний" відповідь на питання "Чому не зберігається і збивається час і дата на комп'ютері?" - сіла батарейка BIOS. Дана батарейка відповідає за збереження налаштувань BIOS / UEFI, коли ваш комп'ютер / ноутбук вимкнений з розетки, а також забезпечує автономну роботу вбудованих апаратних годин.
Якщо батарейка села, то при відключенні живлення материнської карти, BIOS не може зберегти свої налаштування, і всі вони скидаються, в тому числі і поточне дата і час. Якщо ваш комп'ютер досить старий, ймовірність того, що у вас сіла батарейка вкрай велика. Настійно рекомендуємо її замінити. Зробити це не складно, і, як правило, особливих інженерних навичок процес заміни батарейки BIOS не вимагає. У більшості домашніх систем використовується в BIOS стандартна батарейка CR2032 на 3 вольта.
Якщо заміна батарейки не допомогла, перевірте стан перемички скидання налаштувань BIOS (джампер з перемичкою розташований поруч з відсіком для батарейки і може бути підписаний як CCMOS / CLEAR / RESET). Можливо хтось залишив даний джампер в положенні "скидання", в результаті чого при кожній подачі живлення на мат.плату, настройки BIOS обнуляються. Поверніть джампер в нормальне положення.
Наступний варіант - оновлення прошивки BIOS материнської карти (як це зробити - дивіться на сайті виробника вашого заліза). Часто в більш нових прошивках виправляються різні баги.
Налаштування часового поясу і синхронізації часу з time.windows.com
У тому випадку, якщо у вас постійно змінюються настройки дати // часу в Windows, в першу чергу варто перевірити поточні налаштування часового поясу і параметри синхронізації часу з інтернетом. У Windows 10 поточні настройки часу можна подивитися в меню панелі інструментів (Панель керування \ Годинник, мова та регіон -> Дата і час). У цьому прикладі видно, що зазначений часовий пояс UTC + 03, перехід на зимовий час відключений.
Порада. Ви можете управляти годинним поясом 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
Порада. У 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.