Время выключено при двойной загрузке

Система двойной загрузки Windows XP Pro и Ubuntu 12.04.

У меня есть биос, установленный на правильное время, и Ubuntu, настроенный на восточное время США. Ubuntu загрузится, и время отключится на -4 часа. Если я исправлю время в Ubuntu, то при загрузке в Windows XP время будет отключено на + 4 часа.

Это свежая установка 12.04. У меня не было этой проблемы до переустановки Ubuntu.

6 ответов

https://help.ubuntu.com/community/UbuntuTime

Многочисленные конфликты систем загрузки

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

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

Изменение 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
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

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

sc config w32time start= disabled

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

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=-

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

sc config w32time start= demand

Заставьте Linux использовать местное время

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

Системы до 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
    

Чтобы установить часы BIOS на местное время вместо UTC в системной версии (15.04 и выше), вам придется использовать timedatectl команда. Согласно Arch Wiki:

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

$ timedatectl | grep local

Аппаратные часы могут быть запрошены и установлены с помощью timedatectl команда. Чтобы изменить стандарт аппаратного времени на местное, используйте:

# timedatectl set-local-rtc 1

Если вы хотите вернуться к аппаратным часам в UTC, выполните:

# timedatectl set-local-rtc 0

Ваш часовой пояс восточный, в настоящее время EDT (восточное летнее время). EDT - это UTC минус четыре часа, то же самое, что и смещение, которое вы испытываете.

Когда это происходит в системе с двойной загрузкой, обычно это происходит потому, что одна операционная система считает, что аппаратные часы отслеживают местное время, а другая операционная система считает, что аппаратные часы отслеживают UTC.

В вашем случае ваши аппаратные часы, вероятно, установлены на местное время, и:

  • Windows настроена на использование местного времени, которое (учитывая ваши настройки времени) является правильным.
  • Ubuntu настроен на использование UTC, что (учитывая ваши настройки времени) неверно.

Если вы просто сбросите время в системе Ubuntu, вручную или автоматически, это будет неправильно в Windows, так что это не очень хорошее решение.

Вместо этого лучшее решение, вероятно, состоит в том, чтобы реконфигурировать Ubuntu для обработки аппаратных часов как местного времени (тогда вы можете оставить конфигурацию Windows и аппаратные часы отдельно).

Для этого отредактируйте /etc/default/rcS как корень и убедитесь, что он имеет UTC=no:

  1. Нажмите Alt+F2.

  2. Тип gksu gedit /etc/default/rcS и нажмите Enter.

  3. Вы, вероятно, увидите это:

    # assume that the BIOS clock is set to UTC time (recommended)
    UTC=yes
    
    • Если вы делаете, измените UTC=yes в UTC=no, (Или вы можете добавить комментарий тоже, изменив его на что-то вроде UTC=no # changed to accommodate Windows system, Все на линии после # символ - это комментарий, и он предназначен для того, чтобы сделать ваши настройки более понятными для человека.)
    • Если нет, поищите UTC= линия. Если он не прокомментирован (т.е. не имеет # в начале), измените его соответственно. Если это закомментировано, раскомментируйте его, удалив ведущий # и убедитесь, что он говорит UTC=no,
  4. Сохраните файл и выйдите из текстового редактора.

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

Источник: https://help.ubuntu.com/community/UbuntuTime

(Но это очень общий вопрос; я написал этот ответ, чтобы применить его конкретно к вашей ситуации, что является довольно распространенной проблемой.)

Исправление /etc/rcS не работало на моей установке Win7 / Ubuntu 14.04x64, а также не исправлялось через графический интерфейс часов. Поскольку корень проблемы - время BIOS против времени UTC, а Windows - это проблема, когда дело доходит до использования UTC, я просто выбрал точку на карте, которая использует UTC+0 (без изменений между BIOS и временем UTC),

Попробуйте изменить свое местоположение на Рейкьявик (столица Исландии). Вуаля! Ваше время Ubuntu изменится, чтобы соответствовать вашему времени BIOS.

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

Чтобы исправить мою Ubuntu 20.04, я использовал это:

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

в моем случае вернуться к UTC можно

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

и если вы хотите проверить , что вы используете, вы можете ввести это: timedatectl

Мы можем попросить Windows синхронизировать время с сетью при каждой перезагрузке:

  1. Найдите «Службы» в меню «Пуск».
  2. Найдите «Время Windows».
  3. Установите «Тип запуска» на «Автоматически». В моем случае время обновляется примерно через 10 секунд после входа в Windows.

В Ubuntu мы можем установить «Автоматическую дату и время» в настройках, и по умолчанию он запускается автоматически при каждой перезагрузке.

Это мой любимый подход, поскольку он не требует изменения реестра или настройки Linux на использование «местного» времени, что может иметь побочные эффекты, такие как синхронизация летнего времени.

См. этот ответ и этот ответ для получения дополнительной справки.

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