Время windows после linux

[Решено] Неправильное время в Windows 10 после двойной загрузки с Linux

если ты двойная загрузка Windows и Ubuntu или любой другой дистрибутив Linux, вы могли заметить разницу во времени между двумя операционными системами.

Когда ты использовать Linux , он показывает правильное время. Но при загрузке в Windows показывает неправильное время. Иногда бывает наоборот, и Linux показывает неправильное время, а Windows — правильное время.

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

Не волнуйся! Вы не единственный, кто столкнулся с этой проблемой. Вы можете исправить это, используя следующую команду в терминале Linux:

timedatectl set-local-rtc 1

Опять же, не волнуйтесь. Я подробно объясню, как указанная выше команда устраняет проблему неправильного времени в Windows после двойной загрузки. Но перед этим позвольте мне рассказать вам, почему вы сталкиваетесь с разницей во времени при двойной загрузке.

Почему Windows и Linux показывают разное время при двойной загрузке?

У компьютера есть два основных тактовых генератора: системные часы и аппаратные часы.

Аппаратные часы, также называемые RTC ( часы реального времени ) или часы CMOS / BIOS. Эти часы находятся вне операционной системы, на материнской плате вашего компьютера. Он продолжает работать даже после выключения вашей системы.

Системные часы — это то, что вы видите внутри своей операционной системы.

Когда ваш компьютер включен, аппаратные часы считываются и используются для установки системных часов. После этого системные часы используются для отслеживания времени. Если ваша операционная система вносит какие-либо изменения в системные часы, например, меняет часовой пояс и т. Д., Она пытается синхронизировать эту информацию с аппаратными часами.

По умолчанию Linux предполагает, что время, хранящееся в аппаратных часах, находится в формате UTC, а не по местному времени. С другой стороны, Windows считает, что время, хранящееся на аппаратных часах, соответствует местному времени. Вот где начинаются проблемы.

Разрешите пояснить на примерах.

Вы видите, что я нахожусь в часовом поясе Калькутты, который составляет UTC + 5:30. После установки, когда я установил часовой пояс в Ubuntu для часового пояса Калькутты, Ubuntu синхронизирует эту информацию о времени с аппаратными часами, но со смещением 5:30, потому что аппаратные часы (RTC) должны быть в UTC для Linux.

Читайте также:  Линукс минт минусы и плюсы

Предположим, что текущее время в часовом поясе Калькутты — 15:00, что означает, что время в формате UTC — 09:30.

Теперь, когда я выключаю систему и загружаюсь в Windows, аппаратные часы показывают время UTC (в данном примере 09:30). Но Windows считает, что аппаратные часы сохранили местное время. Таким образом, он изменяет системные часы (которые должны были показывать 15:00), чтобы использовать время UTC (09:30) в качестве местного времени. Следовательно, Windows показывает 09:30 как время, которое на 5:30 часов отстает от фактического времени (15:00 в этом примере).

Опять же, если я установлю правильное время в Windows, переключая автоматический часовой пояс и кнопки времени, вы знаете, что произойдет? Теперь он будет показывать правильное время в системе (15:00) и синхронизировать эту информацию (обратите внимание на опцию «Синхронизировать часы» на изображении) с аппаратными часами.

Если вы загружаетесь в Linux, он считывает время с аппаратных часов, которое находится в местном времени (15:00), но, поскольку Linux считает, что это время в формате UTC, он добавляет смещение 5:30 к системным часам. Теперь Linux показывает время 20:30, что на 5:30 часов опережает фактическое время.

Теперь, когда вы понимаете основную причину проблем с разницей во времени при двойной загрузке, пора посмотреть, как решить эту проблему.

Исправление Windows, показывающей неправильное время при установке с двойной загрузкой в ​​Linux

Есть два способа решить эту проблему:

  • Заставить Windows использовать время UTC для аппаратных часов
  • Заставить Linux использовать местное время для аппаратных часов

В Linux проще вносить изменения, поэтому я рекомендую использовать второй метод.

В настоящее время Ubuntu и большинство других дистрибутивов Linux используют systemd, поэтому вы можете использовать команду timedatectl для изменения настроек.

Что вы делаете, так это указываете вашей системе Linux использовать местное время для аппаратных часов (RTC). Вы делаете это с помощью set-local-rtc (установить местное время для RTC) опция:

timedatectl set-local-rtc 1

Как вы можете заметить на изображении ниже, теперь RTC использует местное время.

Теперь, если вы загружаетесь в Windows, аппаратные часы должны быть по местному времени, которое на этот раз действительно правильно. Когда вы загружаетесь в Linux, ваша система Linux знает, что аппаратные часы используют местное время, а не UTC. Следовательно, на этот раз он не пытается добавить смещение.

Читайте также:  Сколько места диске занимает линукс

Это устраняет проблему разницы во времени между Linux и Windows при двойной загрузке.

Вы видите предупреждение о том, что для RTC не используется местное время. Для настольных систем это не должно вызывать никаких проблем. По крайней мере, я не могу вспомнить ни одного.

Надеюсь, я прояснил вам ситуацию. Если у вас остались вопросы, оставьте комментарий ниже.

Источник

Решено: Сбивается время при переходе между Linux и Windows

Многие новички Linux оставляют у себя на компьютере второй запасной операционной системой Windows. Но при переходе то в одну, то во вторую систему наблюдается неприятный момент — время начинает «убегать» на несколько часов то вперед, то назад. Это происходит потому, что Linux и Window хранят время в разных форматах.

В компьютере используется два вида часов. Первые — аппаратные часы, которые идут всегда, даже тогда, когда компьютер выключен (питаются от батарейки на материнской плате компьютера). Вторые часы — программные. Вот именно этими часами пользуется операционная система. При включении компьютера первоначальное время берется из аппаратных часов и записывается в программные часы. И вся проблема как раз в том, что разные операционные системы по-разному работают с программными часами. Есть два варианта работы:

  • UTC — аппаратные и программные часы идут по Гринвичу. И эти часы дают универсальное время с нулевым смещением (нулевой часовой пояс). А уже локально к этому времени прибавляется ваш часовой пояс (с плюсом или минусом). Чаще всего так время идет на серверах, с которыми потом синхронизируются рабочие станции пользователей и уже локально у всех пользователей происходит поправка на их часовой пояс.
  • Localtime — в данном случае программные часы тоже идут по Гринвичу, а вот аппаратные часы идут по времени локального часового пояса. Пользователь особой разницы не заметит, т.к. все равно нужно добавлять или вычитать поправку на свой часовой пояс. И вот тут появляется проблема. Windows при загрузке и(или) синхронизации времени делает поправку на часовой пояс пользователя для того, чтобы программное время было верным. В Linux не так.

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

  1. Заставить Windows работать по UTC, как Linux;
  2. Заставить Linux работать в формате localtime.
Читайте также:  Linux открыть консоль горячие клавиши

Переключение 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) решена.

Источник

Оцените статью
Adblock
detector