Как исправить Windows и Linux, показывающие разные времена при двойной загрузке

Оглавление:

Как исправить Windows и Linux, показывающие разные времена при двойной загрузке
Как исправить Windows и Linux, показывающие разные времена при двойной загрузке

Видео: Как исправить Windows и Linux, показывающие разные времена при двойной загрузке

Видео: Как исправить Windows и Linux, показывающие разные времена при двойной загрузке
Видео: Windows против MacOS. Битва операционных систем. Часть первая. - YouTube 2024, Май
Anonim
Ваш компьютер хранит время в аппаратных часах на своей материнской плате. Часы отслеживают время, даже когда компьютер выключен. По умолчанию Windows предполагает, что время хранится в локальное время, в то время как Linux предполагает, что время хранится в UTC и применяется смещение. Это приводит к тому, что одна из ваших операционных систем показывает неправильное время в ситуации двойной загрузки.
Ваш компьютер хранит время в аппаратных часах на своей материнской плате. Часы отслеживают время, даже когда компьютер выключен. По умолчанию Windows предполагает, что время хранится в локальное время, в то время как Linux предполагает, что время хранится в UTC и применяется смещение. Это приводит к тому, что одна из ваших операционных систем показывает неправильное время в ситуации двойной загрузки.

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

Вариант один: сделать Linux использовать локальное время

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

Шаги, которые помогут вашей системе Linux использовать локальное время, могут варьироваться от дистрибутива Linux до дистрибутива Linux. Однако в любом дистрибутиве Linux с systemd вы можете использовать

timedatectl

чтобы внести это изменение. Это будет работать с современными версиями Ubuntu, Fedora, Red Hat, Debian, Mint и других дистрибутивов Linux, в которых используется systemd.

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

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

Чтобы проверить текущие настройки, запустите:
Чтобы проверить текущие настройки, запустите:

timedatectl

Если вы видите «RTC в локальном TZ: да», Linux настроен на использование локального часового пояса вместо UTC. Команда предупреждает вас, что этот режим не полностью поддерживается и может вызвать некоторые проблемы при изменении между часовыми поясами и летним временем. Однако этот режим, вероятно, лучше поддерживается, чем опция UTC в Windows. Если вы используете двойную загрузку с Windows, Windows будет обрабатывать летнее время для вас.

Если вы хотите отменить это изменение, выполните следующую команду:
Если вы хотите отменить это изменение, выполните следующую команду:

timedatectl set-local-rtc 0 --adjust-system-clock

Image
Image

Вариант второй: сделайте Windows временем UTC

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

Если вы действительно хотите это сделать, сначала нужно отключить функцию обновления времени в Интернете в Windows. Это гарантирует, что Windows не будет устанавливать часы неправильно при попытке синхронизации текущего времени из Интернета. В Windows 10 откройте «Настройки»> «Время и язык» и отключите «Автоматически установить время». В Windows 7 щелкните правой кнопкой мыши системные часы на панели задач и выберите «Настроить дату / время». Перейдите на вкладку «Время в Интернете», нажмите кнопку «Изменить настройки», снимите флажок «Синхронизировать с сервером времени в Интернете» и нажмите «ОК».

Image
Image

Сделать Windows использовать время UTC, редактируя реестр

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

Сначала откройте редактор реестра, нажав «Пуск», набрав «regedit» и нажав Enter. Согласитесь с появившимся предложением безопасности.

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

HKEY_LOCAL_MACHINESystemCurrentControlSetControlTimeZoneInformation

В последних версиях Windows 10 вы можете скопировать и вставить указанную выше строку в поле адреса. Однако этот хак будет работать и на Windows 7.

Щелкните правой кнопкой мыши по кнопке TimeZoneInformation и выберите New> DWORD (32-bit) значение.
Щелкните правой кнопкой мыши по кнопке TimeZoneInformation и выберите New> DWORD (32-bit) значение.
Image
Image

Назовите новое значение

RealTimeIsUniversal

Дважды щелкните
Дважды щелкните

RealTimeIsUniversal

значение, которое вы только что создали, установить значение данных для

1

и нажмите «ОК».

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

Если вы хотите отменить это изменение, вернитесь в это место в реестре, щелкните правой кнопкой мыши
Если вы хотите отменить это изменение, вернитесь в это место в реестре, щелкните правой кнопкой мыши

RealTimeIsUniversal

добавленное значение и удалить его из реестра.

Загрузите наш реестр с одним щелчком

Если вы не хотите редактировать реестр самостоятельно, вы можете использовать наш загружаемый файл реестра. Мы создали один взлом, который заставляет Windows использовать время UTC, и тот, который восстанавливает его по местному времени. Оба включены в следующий ZIP-файл. Просто скачайте файл, дважды щелкните взломанный файл, который хотите использовать, и согласитесь добавить информацию в свой реестр.
Если вы не хотите редактировать реестр самостоятельно, вы можете использовать наш загружаемый файл реестра. Мы создали один взлом, который заставляет Windows использовать время UTC, и тот, который восстанавливает его по местному времени. Оба включены в следующий ZIP-файл. Просто скачайте файл, дважды щелкните взломанный файл, который хотите использовать, и согласитесь добавить информацию в свой реестр.

Сделать время использования UTC UTC

Вышеупомянутые хаки делают то же самое, что мы описали выше. Использование «Использовать время использования UTC UTC» создает запись «RealTimeIsUiversal» со значением «1», а запись «Использовать локальное время использования Windows» удаляет запись «RealTimeIsUiversal».

Если вы когда-нибудь захотите узнать, что делает этот или любой другой.reg-файл, щелкните его правой кнопкой мыши и выберите «Редактировать», чтобы просмотреть файл в «Блокноте». Вы можете легко создавать свои собственные хаки реестра, которые состоят только из списка записей реестра для добавления, редактирования и удаления в правильно отформатированном списке.

Что о двойной загрузке Windows на Mac?

Хотя MacOS от Apple использует время UTC, как Linux, вам не нужно ничего делать при запуске Windows в Boot Camp на Mac. Драйверы Boot Camp от Apple обрабатывают все. (Hackintosh - это еще одна история, и вам придется попробовать использовать настройку реестра Windows выше).

Если вам интересно, почему Windows использует локальное время вместо UTC, как и другие операционные системы, официальный блог Microsoft The Old New Thing объясняет это здесь. Короче говоря, это было сохранение обратной совместимости с системами Windows 3.1 и предотвращение путаницы людей, когда они устанавливают время в BIOS компьютера. Конечно, производители ПК выбрали местное время для совместимости с Windows, и Windows выбрала местное время для совместимости с решением, которое выбрали производители ПК, поэтому цикл стал самоподкрепляющим.

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

Рекомендуемые: