Компьютер Шаг за Шагом

Время виндовс и линукс. Сбивается время в Ubuntu и Windows

В режиме UEFI (безопасная загрузка). Мое время в BIOS правильное.

Когда я загружаюсь в Ubuntu, а затем загружаюсь в Windows 10, он показывает неправильное время. Я должен исправить его вручную или через Интернет в Windows 10, и когда я перезагружаюсь в Windows 10, это не проблема. Часы показывают правильное время. И затем, когда я перезагружаюсь в Linux, часы правильные, но, возвращаясь к Windows 10, часы снова начинают работать.

Операционные системы хранят и извлекают время в аппаратных часах, расположенных на вашей материнской плате, чтобы отслеживать время, даже когда система не имеет питания. Большинство операционных систем (Linux / Unix / Mac) сохраняют время на аппаратных часах как UTC по умолчанию, хотя некоторые системы (в частности, Microsoft Windows) сохраняют время на аппаратных часах как «локальное» время. Это вызывает проблемы в системе двойной загрузки, если обе системы рассматривают аппаратные часы по-разному.

Преимущество использования аппаратных часов в качестве UTC заключается в том, что вам не нужно менять аппаратные часы при переходе между часовыми поясами или когда начинается или заканчивается переход на летнее время (DST), поскольку UTC не имеет смещений по времени или времени.

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

Поскольку Intrepid (8.10), UTC = yes – значение по умолчанию.

Сделать Windows использовать UTC

Примечание . Этот метод первоначально не поддерживался в Windows Vista и Server 2008, но вернулся с Vista SP2, Windows 7, Server 2008 R2 и Windows 8 / 8.1.

Чтобы MS Windows вычислила время с аппаратных часов в формате UTC.

Создайте файл с именем WindowsTimeFixUTC.reg со следующим содержимым, а затем дважды щелкните его, чтобы объединить содержимое с реестром:

Windows Registry Editor Version 5.00 "RealTimeIsUniversal"=dword:00000001

Примечание . Служба времени Windows по-прежнему будет записывать местное время в RTC независимо от установленного выше параметра реестра при выключении, поэтому удобно отключить службу времени Windows с помощью этой команды (если требуется синхронизация по времени, в то время как в Windows используется какое-либо стороннее время синхронизация):

Sc config w32time start= disabled

Отмена изменения

Вы можете создать файл со следующим содержимым, а затем дважды щелкнуть его, чтобы слить исходные изменения, как указано выше:

Windows Registry Editor Version 5.00 "RealTimeIsUniversal"=-

Если служба времени Windows была отключена, включите ее снова с помощью команды:

Sc config w32time start= demand

Сделать Linux «локальным» временем

Чтобы сообщить вашей системе Ubuntu, что аппаратные часы установлены на «локальное» время:

  1. изменить / etc / default / rcS
  2. добавить или изменить следующий раздел

    # Set UTC=yes if your hardware clock is set to UTC (GMT) UTC=no

Системы Ubuntu 15.04 и выше (например, Ubuntu 16.04 LTS):

    откройте терминал и выполните следующую команду

    В этой статье я рассказывал о причинах и их решениях, если сбивается дата и время на вашем компьютере. Эта статья касалась общих проблем не зависимо от количества операционных систем, установленных на вашем ноутбуке и системном блоке.

    Сегодня поговорим о проблеме если сбивается время, а именно часы, на несколько часов, как будто меняется часовой пояс. Эта проблема возникла у меня после того как я стал использовать на своем пк две операционные системы Linux и windows, одновременно.

    Проблема эта оказывается не такая уж новая. Для решение этой проблемы на просторах интернета написано множество проблем.

    Суть проблемы, если сбивается время.

    Стоит на пк две операционные системы, а именно Linux и windows.

    Запускаю linux — время нормальное.

    Поработал и перезагрузился на windows — время показывает на несколько часов раньше (или позже, точно не помню).

    Время выставил, настроил автоматическую синхронизацию с интернетом ни чего не помогло. Проблема не решается простым способом. Поискал на просторах интернета и оказывается проблема в том, что в компьютере есть два вида часов аппаратные и программные.

    Аппаратные часы — идут всегда, при выключенном компьютере тоже, имеется дополнительная батарейка, аккумулятор на плате. Она поддерживает ход времени и сохраняет настройки.

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

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

    Вот. что об этом написано на других сайтах об этом:

    Как решить эту проблему?

    Заставить windows и Linux работать одинаково с этими аппаратными часами.

    На просторах интернета, на тему «сбивается время», написано, что правильным решением будет заставить правильно работать windows. Linux — работает правильно, по множеству мнения многих.

    Значит надо Windows заставить работать со временем как linux.

    Сам процесс решения проблемы.

    Нужно добавить ключ в реестр вашей операционной системы windows.

    Есть способы добавления этого ключа с помощью команды, при помощи командной строки. Мы сделаем все руками по порядку. И самим понятно будет, что мы сделали, и мозги немного поработают.

    Вызовите окно выполнить сочетанием клавиш + R. Или просто в меню выберите выполнить.

    Наберите команду regedit и нажмите ОК.

    Откроется редактор реестра.

    Переходим в ветку реестра по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Там в левой половине редактора нажимаем правой кнопкой мышки и нажимаем создать параметр

    Для х32 битных систем DWORD

    Для х64 битных систем QWORD

    Задаем ему имя RealTimeIsUniversal

    Бывают случаи, когда при установке второй системы, обычно это бывает linux , начинает сбиваться время в системах, к примеру вы работали под своим linux"ом и решили перейти в windows , и обнаружили, что время и дата совершенно не те, или наоборот, это происходит из-за различий формата времени, эти операционные системы по разному с ним работают, немного теории, и так, начинаем с linux , данные операционные системы работают с UTC
    UTC - и аппаратные, и программные часы идут по Гринвичу. То есть часы дают универсальное время на нулевом часовом поясе. Например, если у вас часовой пояс GMT+3, Москва, то часы будут отставать на три часа. А уже пользователи локально прибавляют к этому времени поправку на часовой пояс, например, плюс +3. Каждый пользователь добавляет нужную ему поправку. Так делается на серверах, чтобы каждый пользователь мог получить правильное для своего часового пояса время.
    windows же в свою очередь работает с localtime
    localtime - в этом варианте программные часы тоже идут по Гринвичу, но аппаратные часы идут по времени локального часового пояса. Для пользователя разницы никакой нет, все равно нужно добавлять поправку на свой часовой пояс. Но при загрузке и синхронизации времени Windows вычитает из аппаратного времени 3 часа (или другую поправку на часовой пояс), чтобы программное время было верным.
    так, вроде с теорией разобрались, теперь переходим к практике, и так, в начале грузимся по нашим windows , запускаем консоль от имени администратора и выполняем команды, для 32ч битной системы
    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
    но часы всё равно будут синхронизироваться со временем сервера, для этого выключим службу синхронизации часов
    sc config w32time start= disabled
    теперь перезагружаем нашу систему и запускаем linux логинимся в терминале под root"ом и выполняем команды
    timedatectl set-local-rtc 1 --adjust-system-clock
    и
    sed -i "s/UTC=yes/UTC=no/" /etc/default/rcS
    просмотрим состояние аппаратных часов
    sudo timedatectl
    теперь перезагружаемся ещё раз,входим в bios и настраиваем дату и время, проверяем…
    если по каким то причтнам нам надо отключить всё это, то выполняем команды в linux
    timedatectl set-local-rtc 0
    и
    sed -i "s/UTC=no/UTC=yes/" /etc/default/rcS
    в windows, консоль от имени администратора
    Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
    и
    sc config w32time start= demand
    ещё одним вариантом может послужить следующее, в linux debian и производных
    выполним команду для установки локального времени
    sudo hwclock --localtime --adjust
    если же хотим вернуть обратно
    sudo hwclock --utc --adjust
    теперь проверим
    timedatectl | grep local
    если ответ
    RTC in local TZ: no
    то наше время тикает по гринвичу, если же ответ
    RTC in local TZ: yes
    то значит наше время тикает по установленному системно
    на сем всё, думаю вам было полезно

    Многие новые пользователи, которые только перешли на 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 проведите мышь в левый нижний угол, затем нажмите правую кнопку. В контекстном меню выберите Командная строка (администратор) :

    > 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, но если ubuntu 16.04 сбивает время 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

    Выводы

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

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

    НАСТРОЙКА WINDOWS ДЛЯ РАБОТЫ ПО UTC

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

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

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

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

    Target="_blank">https://losst.ru/wp-content/uploads/2016/10/utc-windows-600x139-300x70.png 300w" width="600" />

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

    > sc config w32time start= disabled

    КАК ВЕРНУТЬ ОБРАТНО?

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

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

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

    > sc config w32time start= demand

    НАСТРОЙКА LINUX ДЛЯ РАБОТЫ LOCALTIME

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

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

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

    Sudo timedatectl

    Target="_blank">https://losst.ru/wp-content/uploads/2016/10/rtc-localtime-600x242-300x121.jpg 300w" width="600" />

    Готово, теперь вы можете перезапустить компьютер и запустить 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 дистрибутиве, вы уже будете знать, как ее решить с помощью двух полностью работающих способов.


Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и правилами сайта, изложенными в пользовательском соглашении