Форум проекта Matuntu

Поддержка => Если вдруг... => Тема начата: ivm от 26 Сентября 2019, 14:52:45

Название: Сбивается время в Linux и Windows [РЕШЕНО]
Отправлено: ivm от 26 Сентября 2019, 14:52:45
Если на компьютере установлены две системы Linux и Windows, иногда возникает сбой в отображении времени на несколько часов назад или вперёд.
Всё это происходит из-за различий формата хранения времени в этих операционных системах и будет происходить при каждой перезагрузке, сколько бы вы ни устанавливали правильное время. В компьютере есть два вида часов. Аппаратные - идут всегда, даже когда компьютер выключен, и программные часы, встроенные в ядро. Когда компьютер включается, значение аппаратных часов записывается в программные и в дальнейшем операционная система берёт время оттуда. Но Windows и Linux работают по-разному с этими двумя часами.

Есть два способа работы:Но эту проблему можно решить и даже несколькими способами.
Настройка 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Почти готово, но служба времени 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 использует формат хранения времени UTC, но если Linux сбивает время Windows, вы можете очень просто заставить систему хранить в аппаратном таймере местное время. Во всех дистрибутивах, использующих Systemd, в том числе в Ubuntu 16.04 и новее для этого достаточно выполнить команду:sudo timedatectl set-local-rtc 1 --adjust-system-clockЧтобы посмотреть текущее состояние аппаратных и программных часов, выполните: sudo timedatectlГотово, теперь вы можете перезапустить компьютер и запустить 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Источник (https://losst.ru/sbivaetsya-vremya-v-ubuntu-i-windows)

PS. C моей точки зрения, более правильно устанавливать Windows в виртуальную машину на Linux. В этом случае винда ведёт себя более стабильно. Правда, для этого нужно очень хорошо владеть настройками ВМ.