Сбивается время в Ubuntu и Windows

Многие новые пользователи, которые только перешли на Linux с операционной системы Windows, и пока все еще запускают эту систему время от времени, сталкиваются с проблемой, что после загрузки windows в ubuntu сбивается время на несколько часов назад или вперед, затем после нескольких перезагрузок уже сложно понять какое сейчас время.

Все это происходит из-за различий формата хранения времени в этих операционных системах. И будет происходить при каждой перезагрузке, сколько бы вы ни устанавливали правильное время. Но эту проблему можно решить. И даже несколькими способами. В этой статье мы рассмотрим, как решить проблему сбивается время в ubuntu и windows.

Почему так происходит?

Как я уже сказал, проблема в разных форматах хранения и восстановления времени. В компьютере есть два вида часов. Аппаратные - идут всегда, даже когда компьютер выключен и программные часы, встроенные в ядро. Когда компьютер включается значение аппаратных часов записывается в программные, и в дальнейшем операционная система берет время оттуда. Но Windows и Linux работают по-разному с этими двумя часами. Есть два способа работы:

  • UTC - и аппаратные, и программные часы идут по Гринвичу. То есть часы дают универсальное время на нулевом часовом поясе. Например, если у вас часовой пояс GMT+3, Киев, то часы будут отставать на три часа. А уже пользователи локально прибавляют к этому времени поправку на часовой пояс, например, плюс +3. Каждый пользователь добавляет нужную ему поправку. Так делается на серверах, чтобы каждый пользователь мог получить правильное для своего часового пояса время.
  • localtime - в этом варианте программные часы тоже идут по Гринвичу, но аппаратные часы идут по времени локального часового пояса. Для пользователя разницы никакой нет, все равно нужно добавлять поправку на свой часовой пояс. Но при загрузке и синхронизации времени Windows вычитает из аппаратного времени 3 часа (или другую поправку на часовой пояс), чтобы программное время было верным.

Так почему же сбивается время Ubuntu и Windows? Вот, допустим, работает Windows, и со временем там все нормально, оно сохранено в формате localtime. Но при перезагрузке в Linux, операционная система берет время Localtime, и думает что это UTC. Таким образом, пользователь будет брать уже правильное время, и прибавлять к нему поправку на часовой пояс. Поэтому время уже будет неверным.

Дальше вы исправили время, и теперь аппаратные часы работают в UTC. Но затем грузите WIndows. Система думает, что это Localtime и для установки правильного программного времени добавляет к аппаратному поправку на часовой пояс, например, в нашем случае +3. Дальше каждый пользователь еще раз применяет эту поправку и время уже сбито, опять.

Единственно верный способ решить эту проблему - заставить обе системы работать по одному формату и сделать это совсем не сложно. Причем можно пойти двумя путями: либо заставить Windows работать по UTC, либо Linux по формату Localtime, что является не совсем правильным, но вполне возможно. Итак перейдем к решению проблемы сбивается время в Ubuntu.

Настройка Windows для работы по UTC

Итак, если у вас сбивается время windows и linux при переключении между операционными системами, лучшим способом будет заставить Windows работать по более правильному и логичному формату. Для этого достаточно добавить один ключ реестра. Вы можете сделать это с помощью одной команды в консоли. Чтобы открыть консоль в Windows 10 проведите мышь в левый нижний угол, затем нажмите правую кнопку. В контекстном меню выберите Командная строка (администратор):

Дальше наберите команду для 32 битных систем:

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

А для 64-битных, нужно использовать тип значения  REG_QWORD:

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

utc-windows-600x139

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

> sc config w32time start= disabled

Как вернуть обратно?

Если вы хотите вернуть все как было, то сделать это можно проще простого. Сначала возвращаем ключ реестра в правильное положение:

> Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0

И запускаем обратно службу синхронизации:

> sc config w32time start= demand

Готово, а дальше рассмотрим, как заставить Linux использовать формат времени localtime.

Настройка Linux для работы localtime

По умолчанию Linux использует формат хранения времени UTC, но если ubuntu 16.04 сбивает время windows, вы можете очень просто заставить систему хранить в аппаратном таймере местное время. Во всех дистрибутивах, использующих Systemd, в том числе в Ubuntu 16.04 для этого достаточно выполнить команду:

sudo timedatectl set-local-rtc 1 --adjust-system-clock

Чтобы посмотреть текущее состояние аппаратных и программных часов выполните:

sudo timedatectl

rtc-localtime-600x242

Готово, теперь вы можете перезапустить компьютер и запустить Windows, чтобы убедиться, что время не сбивается при перезагрузке. В более старых системах Ubuntu, вам нужно отредактировать файл /etc/default/rcS и заменить UTC=yes на UTC=no. Вы можете сделать это командой:

sudo sed -i 's/UTC=yes/UTC=no/' /etc/default/rcS

Как вернуть обратно?

Опять же, вернуть все как было можно с помощью одной команды:

sudo timedatectl set-local-rtc 0

А в старых дистрибутивах Ubuntu:

sudo sed -i 's/UTC=no/UTC=yes/' /etc/default/rcS

Выводы

Вот и все. Теперь, если вы столкнетесь с проблемой windows 10 - сбивается время ubuntu или любом другом Linux дистрибутиве, вы уже будете знать, как ее решить с помощью двух полностью работающих способов. Если у вас остались вопросы, спрашивайте в комментариях!
Мы разобрались, как настроить правильное время в Ubuntu и Windows, чтобы временные зоны не сбивались, но что такое временные зоны и зачем они нужны, на завершение видео про это:

51 комментарий

  1. Аватар Александр 12 октября, 2016 Ответить
  2. Аватар Юрий 12 октября, 2016 Ответить
  3. Аватар Drake 12 октября, 2016 Ответить
    • Аватар Ирина 29 декабря, 2019 Ответить
  4. Аватар solty 13 октября, 2016 Ответить
    • Аватар solty 18 октября, 2016 Ответить
  5. Аватар Drake 15 октября, 2016 Ответить
    • Аватар admin 16 октября, 2016 Ответить
    • Аватар Fixing 21 декабря, 2016 Ответить
  6. Аватар artpavelalex 17 октября, 2016 Ответить
  7. Аватар Gregori 29 октября, 2016 Ответить
    • Аватар ваш кэп 30 марта, 2018 Ответить
  8. Аватар Виктор 1 марта, 2017 Ответить
  9. Аватар Виктор 2 марта, 2017 Ответить
    • Аватар DSI 29 сентября, 2017 Ответить
    • Аватар Владимир 4 июля, 2019 Ответить
  10. Аватар ExMuser 28 апреля, 2017 Ответить
  11. Аватар Александр 9 мая, 2017 Ответить
  12. Аватар ExMuser 8 июня, 2017 Ответить
  13. Аватар Yurii 3 июля, 2017 Ответить
  14. Аватар Андрей 28 июля, 2017 Ответить
    • Аватар Лео 19 сентября, 2017 Ответить
    • Аватар Сергей 28 июля, 2019 Ответить
  15. Аватар Maximus 13 августа, 2017 Ответить
  16. Аватар Dmitry 13 августа, 2017 Ответить
  17. Аватар Mike 14 августа, 2017 Ответить
  18. Аватар Прохор 21 сентября, 2017 Ответить
  19. Аватар Вадим 10 октября, 2017 Ответить
  20. Аватар igor 12 октября, 2017 Ответить
    • Аватар Абдул 24 октября, 2018 Ответить
  21. Аватар Yaroslava 28 февраля, 2018 Ответить
  22. Аватар Виктор 9 марта, 2018 Ответить
  23. Аватар Владимир 22 апреля, 2018 Ответить
    • Аватар dobrojelatel 18 мая, 2018 Ответить
  24. Аватар Павел Мелехов 5 июля, 2018 Ответить
  25. Аватар Виктор Павлов 26 ноября, 2018 Ответить
  26. Аватар Мак 9 декабря, 2018 Ответить
    • Аватар Kitsune 3 февраля, 2019 Ответить
      • Аватар Алексей 23 июля, 2019 Ответить
  27. Аватар Валерий 22 апреля, 2019 Ответить
  28. Аватар enpa 26 августа, 2019 Ответить
  29. Аватар Enceladus Satellite 14 сентября, 2019 Ответить
  30. Аватар Станислав 26 сентября, 2019 Ответить
  31. Аватар Тадеуш 17 ноября, 2019 Ответить
  32. Аватар Александр 20 ноября, 2019 Ответить
  33. Аватар Пупкин 17 декабря, 2019 Ответить
  34. Аватар $enceladus 31 декабря, 2019 Ответить
  35. Аватар Виктор 9 января, 2020 Ответить
  36. Аватар alexey 13 января, 2020 Ответить
  37. Аватар Mitai 15 января, 2020 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: