- Windows время синхронизация с linux
- Почему сбивается время
- Linux и формат UTC
- Windows и формат LocalTime
- Как исправить смещение времени
- Вариант 1
- Шаг 1. Добавляем параметр RealTimeIsUniversal
- Шаг 2. Отключаем синхронизацию времени с сетью Интернет
- Вариант 2
- Как вернуть настройку времени в Windows и Linux назад
- Последние материалы
- Синхронизация времени в Linux
- Синхронизируем время в Linux
- Настройка даты через графический интерфейс
- Стандартные команды для управления временем
- Взаимодействие с сервисом timesyncd
- Установка NTPD
Windows время синхронизация с linux
Нередки конфигурации, когда на компьютере установлены две операционные системы (Windows и Linux) в конфигурации двойной загрузки (или как модно говорить Dual Boot). Действительно, на первое время можно попробовать пользоваться и Linux, и Windows, а затем уже принять решение о полном переходе на Linux, если все ваши потребности удовлетворены.
Однако вы можете столкнуться с проблемой, что после переключения между операционными системами (загрузки в Linux после Windows) сбивается время на несколько часов вперед или назад. Собственно, с данной ситуацией столкнулся и я. Мне это не понравилось. К счастью, описанная проблема решается в пару кликов.
Почему сбивается время
Windows и Linux по разному работают с временем BIOS. Дело тут в наличии двух форматов представления времени UTC и localtime.
Linux и формат UTC
Операционные системы GNU/Linux (в том числе Mac OS X) считают, что время в BIOS указано в формате UTC (по Гринвичу). Соответственно, при загрузке Linux для преобразования UTC к локальному времени добавляет (отнимает) смещение текущего часового пояса, который выбрал пользователь. Проще говоря, чтобы получить локальное время для часового пояса Москвы UTC+3, Linux добавит 3 часа.
Windows и формат LocalTime
Windows же считает, что в время в BIOS хранится в формате localtime. Поэтому если вы указали новый часовой пояс или синхронизировали время с внешним источником, система соответственным образом меняет время в BIOS на локальное время.
Linux (Kubuntu 18.04 в моем случае) считает, что время в BIOS указано в формате UTC и дополнительно добавляет смещение часового пояса. Именно поэтому и сбивается время при переключении между Linux и Windows.
Как исправить смещение времени
Вариант 1
Шаг 1. Добавляем параметр RealTimeIsUniversal
Чтобы исправить такую ситуацию, нужно переключить Windows на использование времени в формате UTC с помощью параметра реестра RealTimeIsUniversal.
Для этого запускаем в Windows командную строку от имени администратора (команда контекстного меню) и с помощью приведенных далее команд добавляем необходимый параметр в реестр. Можете данный параметр добавить вручную, не принципиально, а всего лишь дело вкуса и предпочтений.
Для 32-битных систем:
reg add «HKLMACHINE\System\CurrentControlSet\Control\TimeZoneInformation» /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
Для 64-битных систем (нужно создавать параметр типа QWORD вместо DWORD):
reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
Шаг 2. Отключаем синхронизацию времени с сетью Интернет
Дополнительно в Windows нужно отключить обновление времени из Интернета, так как служба времени Windows при каждом обновлении времени будет сбрасывать UTC время на локальное. Сделать это проще всего при помощи команды (не забываем запустить командную строку от имени администратора):
sc config w32time start=disabled
После выполнения указанной команды потребуется перезагрузиться в Linux, а затем снова в Windows.
Вариант 2
Также можно переключить Linux на использование локального времени. В Kubuntu 18.04 и выше это можно сделать командой:
timedatectl set-local-rtc 1
Как вернуть настройку времени в Windows и Linux назад
Вернуть настройку времени назад легко. Для этого нужно выполнить обратные команды, которые были описаны выше (иначе говоря, вернуть синхронизацию времени и установить параметр реестра в ноль).
Для 32-битных систем:
reg add «HKLMACHINE\System\CurrentControlSet\Control\TimeZoneInformation» /v RealTimeIsUniversal /t REG_DWORD /d 0 /f
Для 64-битных систем (нужно создавать параметр типа QWORD вместо DWORD):
reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 0
Для включения синхронизации времени в Windows:
sc config w32time start=demand
Для возврата настроек на умолчание в Kubuntu 18.04 или Ubuntu 18.04 достаточно выполнить команду в Терминале:
sudo timedatectl set-local-rtc 0
Какой вариант выбрать, решайте сами. Лично я использую первый вариант. А какой вариант используете вы?
Понравилась статья? Не очень? Тогда возможно, что вы напишите свою гораздо лучше. Просто перейдите по ссылке Размещение статей и ознакомьтесь с правилами публикации статей на сайте MultiBlog67.RU .
+ CategoryInfo : InvalidArgument: (:) [Set-Content], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetContentCommand
+ CategoryInfo : InvalidArgument: (:) [Set-Content], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.C ommands.SetContentCommand
- Вы здесь:
- Главная
- Разное
- Операционная система Ubuntu
- Dual Boot: сбивается время в Linux и Windows
Последние материалы
- Установка MS EDGE в Ubuntu и Kubuntu
Как читать проектную декларацию застройщика
Индукционная электрическая плитка LEBEN 288-021
Застройщики и новостройки Смоленска
Статистика коронавируса COVID-19 в терминале Linux
Синхронизация времени в Linux
Правильная синхронизация времени в Linux — залог корректной работы преимущественного большинства приложений и сервисов, что особенно касается тех инструментов, которые хоть как-то связаны с интернетом. Во всех дистрибутивах данной операционной системы за синхронизацию даты и времени отвечает специальная утилита. Она находится в активном состоянии по умолчанию, поэтому у пользователей нет необходимости как-то ее настраивать или изменять. Однако иногда такая надобность все же появляется из-за разных причин, например, случайных сбоев. Сегодня мы хотим рассмотреть принцип этой конфигурации и смену сервиса синхронизации на более привычный для многих юзеров.
Синхронизируем время в Linux
Для начала давайте уточним, что затронуть абсолютно все дистрибутивы в рамках одной статьи не получится, поэтому за пример мы возьмем самую популярную сборку — Ubuntu. В остальных ОС все происходит практически идентично, а различия наблюдаются лишь в элементах графического интерфейса. Однако если вы в этой статье не найдете интересующей информации, придется воспользоваться официальной документацией дистрибутива, чтобы справиться с поставленной задачей.
Настройка даты через графический интерфейс
Перед тем, как мы приступим к разбору сервисов для синхронизации времени, давайте рассмотрим важную для новичков настройку. Большинство начинающих обладателей Linux предпочитают использовать графическое меню для конфигурации необходимых параметров, это относится и к времени. Весь процесс осуществляется следующим образом:
- Откройте меню приложений и отыщите там «Параметры».
Перейдите в раздел «Сведения о системе».
Здесь вас интересует категория «Дата и время».
При их отключении строки с датой, временем и часовым поясом активируются, а это значит, что теперь ничего не помешает вам установить пользовательские параметры.
В окне местоположения выберите точку на карте или используйте поиск.
Дополнительно в «Дата и время» указывается формат. По умолчанию он 24-часовой.
Как видите, ничего сложного во взаимодействии с графическим интерфейсом нет. Однако недостаток этого способа заключается в том, что в меню отсутствуют важные параметры управления сервисом синхронизации, поэтому в определенных ситуациях использовать «Параметры» не получится.
Стандартные команды для управления временем
Все остальные инструкции, которые вы увидите в рамках сегодняшнего материала, заключаются в использовании терминальных команд. В первую очередь мы хотим затронуть тему стандартных опций, позволяющих управлять текущей датой и временем или просматривать нужные сведения.
- Начните с запуска «Терминала». Сделать это можно, например, нажав на соответствующий значок в меню приложений.
Введите команду date , чтобы определить текущую дату и время.
В новой строке отобразится интересующая вас информация в стандартном формате.
Через стандартную команду можно и изменить часовой пояс. Сначала нужно просмотреть доступный список поясов и запомнить название требуемого. Напечатайте timedatectl list-timezones и нажмите на Enter.
Перемещайтесь вниз по списку с помощью клавиши Пробел. После того, как вы найдете нужный пояс и запомните правило его написания, нажмите на Q для выхода.
Команда sudo timedatectl set-timezone America/New_York отвечает за смену часового пояса на выбранный. Вместо America/New_York вам следует написать определенный ранее вариант.
Для подтверждения действия придется ввести пароль суперпользователя, поскольку команда была выполнена с аргументом sudo.
После внесения всех изменений остается убедиться в том, что все они вступили в силу. Дополнительную информацию о timedatectl мы предлагаем узнать в официальной документации, поскольку остальные опции уже не входят в рамки темы синхронизации времени, однако могут быть полезны определенным пользователям.
Взаимодействие с сервисом timesyncd
Выше мы посоветовали изучить сведения о timedatectl через официальную документацию, но предлагаем еще на минуту остановиться на этом, чтобы ознакомиться с сервисом timesyncd. Именно эта утилита отвечает за синхронизацию времени в операционной системе по умолчанию.
- Для определения текущего статуса timesyncd используйте команду timedatectl в консоли.
В новых строках вы получите все необходимые сведения, куда относится локальное время, установленная зона и данные о синхронизации и активности самого сервиса.
Если вы видите, что этот инструмент сейчас отключен по каким-то причинам и хотите запустить его, чтобы наладить синхронизацию, используйте строку sudo timedatectl set-ntp on .
Установка NTPD
Последний раздел нашего сегодняшнего материала будет посвящен замене упомянутого выше сервиса синхронизации времени на более надежный протокол NTPD (Network Time Protocol daemon). Именно его раньше задействовали во многих дистрибутивах по умолчанию и хвалили за корректное взаимодействие с особо чувствительными ко времени приложениями. Инсталляция и замена сервиса происходит так:
- Для начала отключите стандартную утилиту, введя sudo timedatectl set-ntp no .
Придется подтвердить подлинность учетной записи путем написания пароля суперпользователя.
После вы можете использовать уже знакомую команду timedatectl для того, чтобы убедиться в отключенном состоянии инструмента.
Перед началом установки нового программного обеспечения рекомендуется произвести инсталляцию последних обновлений. Осуществляется это через sudo apt update .
По окончании этого процесса используйте команду sudo apt install ntp .
Подтвердите уведомление о необходимости скачивания архивов.
Ожидайте завершения скачивания и инсталляции пакетов.
Теперь можете использовать новый протокол, вводя соответствующие атрибуты в «Терминал». Просмотр основных сведений происходит через ntpq -p .
Network Time Protocol daemon будет активирован автоматически, поэтому никаких дополнительных команд вводить не нужно. Вы можете сразу же приступить к тестированию проблемных приложений или выполнять другие действия, ради которых и осуществлялась инсталляция нового сервиса синхронизации времени.
Как видите, синхронизация времени и даты в Linux осуществляется автоматически, поэтому очень редко случаются ситуации, когда требуется активировать этот параметр или поменять другие опции. Теперь, изучив представленный материал, вы знаете, что существуют разные инструменты синхронизации, а настройка также может осуществляться через графическое меню.