- Как исправить разницу во времени между Ubuntu и Windows, работающими на одной машине
- Как исправить разницу во времени между Ubuntu и Windows
- Как вернуть изменения
- Добавить комментарий
- Решено: Сбивается время при переходе между Linux и Windows
- Переключение Windows на работу по UTC
- Как вернуть настройки времени в Windows обратно?
- Перевод Linux на работу с Localtime
- Как вернуть настройки времени в Linux обратно?
Как исправить разницу во времени между Ubuntu и Windows, работающими на одной машине
Если на вашей машине установлены 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, можно с помощью команды
Если вы используете 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
После этого перезагрузите компьютер.
Добавить комментарий
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Решено: Сбивается время при переходе между Linux и Windows
Многие новички Linux оставляют у себя на компьютере второй запасной операционной системой Windows. Но при переходе то в одну, то во вторую систему наблюдается неприятный момент — время начинает «убегать» на несколько часов то вперед, то назад. Это происходит потому, что Linux и Window хранят время в разных форматах.
В компьютере используется два вида часов. Первые — аппаратные часы, которые идут всегда, даже тогда, когда компьютер выключен (питаются от батарейки на материнской плате компьютера). Вторые часы — программные. Вот именно этими часами пользуется операционная система. При включении компьютера первоначальное время берется из аппаратных часов и записывается в программные часы. И вся проблема как раз в том, что разные операционные системы по-разному работают с программными часами. Есть два варианта работы:
- UTC — аппаратные и программные часы идут по Гринвичу. И эти часы дают универсальное время с нулевым смещением (нулевой часовой пояс). А уже локально к этому времени прибавляется ваш часовой пояс (с плюсом или минусом). Чаще всего так время идет на серверах, с которыми потом синхронизируются рабочие станции пользователей и уже локально у всех пользователей происходит поправка на их часовой пояс.
- Localtime — в данном случае программные часы тоже идут по Гринвичу, а вот аппаратные часы идут по времени локального часового пояса. Пользователь особой разницы не заметит, т.к. все равно нужно добавлять или вычитать поправку на свой часовой пояс. И вот тут появляется проблема. Windows при загрузке и(или) синхронизации времени делает поправку на часовой пояс пользователя для того, чтобы программное время было верным. В Linux не так.
Именно поэтому, при каждой перезагрузке из одной системы в другую будет происходить смещение времени на величину поправки на часовой пояс. И единственный способ это устранить — это заставить обе системы (и Windows, и Linux) работать со временем в одном формате. Сделать это можно двумя путями:
- Заставить Windows работать по UTC, как Linux;
- Заставить Linux работать в формате localtime.
Переключение Windows на работу по UTC
Для решения проблемы сбивающегося времени достаточно добавить всего один ключ в реестр Windows. Это можно сделать с помощью ввода команды в консоли.
Чтобы открыть консоль от имени администратора в Windows 10 нужно поставить курсор мыши в левый нижний угол экрана и нажать правую кнопку мыши. В появившемся контекстном меню нужно выбрать «Командная строка (администратор)».
Для 32-х битной Windows вводим (это одна команда, вводится в одну строку):
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
Для 64-х битных нужно ввести (это одна команда, вводится в одну строку):
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
Однако, это еще не все. Служба времени Windows все равно продолжит сохранять время в старом формате при его обновлении через Интернет. Поэтому, службу нужно отключить. Либо это сделать руками через «Панель управления» Windows, либо быстрее и проще в той же командной строке, запущенной от имени администратора, выполнить:
sc config w32time start=disabled
Как вернуть настройки времени в Windows обратно?
В командной строке, запущенной от имени администратора, выполняем (это одна команда, вводится в одну строку):
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
и запускаем службу синхронизации времени Windows:
sc config w32time start=demand
Перевод Linux на работу с Localtime
По умолчанию Linux хранит временя в формате UTC, но можно переключить систему так, чтобы она хранила в аппаратном таймере местное время. Рассмотрим на примере Ubuntu-Linux (работает даже в старых версиях, например в 16.04).
Чтобы посмотреть текущее состояние аппаратных и программных часов, нужно выполнить:
Начнем исправлять проблему сбивающихся часов. Для этого выполняем команду:
sudo timedatectl set-local-rtc 1 —adjust-system-clock
Готово! Еще проще, чем в Winsdows!
Однако, в более старых Ubuntu придется отредактировать файл /etc/default/rcS, внутри которого заменить UTC=yes на UTC=no.
Как вернуть настройки времени в Linux обратно?
Вернуть все как было можно с помощью команды:
sudo timedatectl set-local-rtc 0
И в старых дистрибутивах Ubuntu поправить файл /etc/default/rcS, внутри которого заменить UTC=no на UTC=yes.
На этом проблема сбивающегося времени в Windows и Linux (любой дистрибутив, не обязательно Ubuntu) решена.