18

У меня есть Arch Linux + Windows 8 на моем ноутбуке. В предыдущих версиях Windows в реестре присутствовал DWORD (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal), который переключается между локальным временем и UTC, но в Windows 8 это больше не работает.

Сейчас я получаю время UTC в Windows, так как считает, что BIOS указывает местное время, которое фактически соответствует времени UTC, и после перезагрузки в Arch Linux часы становятся местными - 0400, потому что Arch считает, что BIOS имеет правильное время UTC.

Я не хочу позволить Arch Linux использовать местное время. При этом предварительном условии, есть ли возможное решение?

7 ответов7

15

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

  1. Если время перепутано с попыткой заставить Windows использовать UTC, загрузиться в Windows и установить время как обычно (правильный часовой пояс, без regedit, служба времени Windows включена, недавно синхронизирована и т.д.)
  2. Вы уже упомянули о regedit
  3. Синхронизировать время w32tm /config /update
  4. Отключить конфигурацию sc службы Windows Time sc config w32time start= disabled
  5. Установите сторонний NTP-клиент
  6. Убедитесь, что он работает с перезагрузкой
10

Раздел реестра RealTimeIsUniversal прежнему работает в Windows 8 и 10! Просто проверил это сам. Инструкции по использованию этого метода объясняются много раз везде, например, в этом ответе.

Я повторю ответ здесь:

  1. Win+S, regedit , Enter.

  2. Перейдите к ключу: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation .

  3. Создайте новое DWORD (32-битное) значение, назовите его RealTimeIsUniversal .

  4. Установите его значение в 1 .

После этого просто перезагрузите компьютер. После того, как он снова заработает, позвольте Windows автоматически установить время (нажмите на текущее время в трее, Date and Time Settings > Set Time Automatically), на этот раз он не будет связываться с ним.

3

RealTimeIsUniversal действительно содержит ошибки и не является официально рекомендованным решением (может быть, поэтому они отключили его в Win8?) Посмотрите, что IBM PC Real Time Clock должны работать в UT, и ответ Раймонда Чена здесь: Почему Windows поддерживает ваши часы BIOS на местном времени? , На сегодняшний день я не думаю, что есть правильное решение для этого.

0

RealTimeIsUniversal работает для меня. Чтобы заставить его работать, после применения записи в реестре выключите Windows (не спите и не переходите в спящий режим). Загрузите компьютер и войдите в BIOS перед загрузкой в Windows, измените время в BIOS, сохраните и продолжите загрузку в Windows. В качестве альтернативы, после завершения работы Windows загрузитесь в Linux и дайте временной синхронизации выполнить свою работу. Если время обновляется из-за Windows, Windows как-то обновит неправильное время в системе после перезагрузки.

0

@jiehanzheng Да, если вы используете NTP в Windows, это может испортить время. Похоже, лучшим обходным путем является запуск NTP в любой разновидности * NIX, в которой вы используете двойную загрузку, отключение NTP в Windows и смещение в любом часовом поясе. Тогда вам просто нужно отрегулировать переход на летнее время вручную со смещением часового пояса в Windows, но ...

-1

RealTimeIsUniversal работал для меня в Windows 10. И в середине декабря 2016 года он работает и для моего Windows 7 Pro без перезагрузки в Linux.

-3

Вы можете просто установить свой часовой пояс на четыре часа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .