Часы показывают неправильное время после перехода с Ubuntu на Windows 10 [дубликат]

На этот вопрос уже есть ответ здесь:

У меня двойная загрузка Windows 10 и Ubuntu 16.04 в режиме UEFI (безопасная загрузка отключена). Мое время в BIOS правильное.

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

83
задан 21 July 2016 в 05:07

1 ответ

Несколько системных конфликтов времени начальной загрузки

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

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

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

С тех пор Бесстрашный (8.10), UTC=yes является значением по умолчанию.

Решение 1: Заставьте Windows использовать UTC

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

Заставить MS Windows вычислить время от аппаратных часов как UTC.

Создайте файл под названием WindowsTimeFixUTC.reg со следующим содержанием и затем дважды щелкните по нему для слияния содержания с реестром:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
 "RealTimeIsUniversal"=dword:00000001

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

sc config w32time start= disabled

При выполнении вышеупомянутой команды в Powershell необходимо будет указать sc.exe:

sc.exe config w32time start= disabled

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

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

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
 "RealTimeIsUniversal"=-

Если сервис Windows Time был отключен, включите его снова с командой:

sc config w32time start= demand

Решение 2: Заставьте Linux использовать 'Локальное' время

Чтобы сказать Вашу систему Ubuntu, что аппаратные часы установлены на 'локальное' время:

Системы перед человечностью 15.04 (например, Ubuntu 14.04 LTS):

  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):

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

    timedatectl set-local-rtc 1
    

источник: Справка Ubuntu

98
ответ дан 22 November 2019 в 23:12

Другие вопросы по тегам:

Похожие вопросы: