Многочисленные конфликты систем загрузки
Операционные системы хранят и извлекают время на аппаратных часах, расположенных на материнской плате, чтобы они могли отслеживать время, даже когда система не имеет питания. Большинство операционных систем (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):
- редактировать
/etc/default/rcS
добавить или изменить следующий раздел
# Set UTC=yes if your hardware clock is set to UTC (GMT)
UTC=no
Системы Ubuntu 15.04 и выше (например, Ubuntu 16.04 LTS):
откройте терминал и выполните следующую команду
timedatectl set-local-rtc 1
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -PropertyType DWord -Value 00000001
Чтобы установить часы BIOS на местное время вместо UTC в системной версии (15.04 и выше), вам нужно будет использовать
timedatectl
команду. Согласно Arch Wiki :источник
Ваш часовой пояс восточный , в настоящее время EDT (восточное летнее время). EDT - это UTC минус четыре часа, то же самое, что и смещение, которое вы испытываете.
Когда это происходит в системе с двойной загрузкой, обычно это происходит потому, что одна операционная система считает, что аппаратные часы отслеживают местное время, а другая операционная система считает, что аппаратные часы отслеживают UTC.
В вашем случае ваши аппаратные часы, вероятно, установлены на местное время, и:
Если вы просто сбросите время в системе Ubuntu, вручную или автоматически , это будет неправильно в Windows, так что это не очень хорошее решение.
Вместо этого лучшее решение, вероятно, состоит в том, чтобы реконфигурировать Ubuntu для обработки аппаратных часов как местного времени (тогда вы можете оставить конфигурацию Windows и аппаратные часы отдельно).
Для этого отредактируйте
/etc/default/rcS
как root и убедитесь, что оно имеетUTC=no
:Нажмите Alt+ F2.
Введите
gksu gedit /etc/default/rcS
и нажмите Enter.Вы, вероятно, увидите это:
UTC=yes
наUTC=no
. (Или, возможно, вы захотите добавить комментарий, изменив его на что-то вродеUTC=no # changed to accommodate Windows system
. Все в строке после#
символа - это комментарий, и это просто для того, чтобы сделать ваши настройки более удобочитаемыми.)UTC=
строку. Если он не закомментирован (то есть не имеет#
в начале), измените его соответствующим образом. Если это закомментировано, раскомментируйте его, удалив ведущий#
и убедитесь, что оно говоритUTC=no
.Сохраните файл и выйдите из текстового редактора.
Перезагрузитесь, чтобы изменения вступили в силу, и убедитесь, что время работает правильно в обеих операционных системах.
Источник: https://help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time
(Но это очень общий вопрос; я написал этот ответ, чтобы применить его конкретно к вашей ситуации, что является довольно распространенной проблемой.)
источник
Исправление / etc / rcS не работало на моей установке Win7 / Ubuntu 14.04x64, а также не исправлялось через графический интерфейс часов. Поскольку корень проблемы - время BIOS против времени UTC, а Windows - это проблема, когда дело доходит до использования UTC, я просто выбрал точку на карте, которая использует UTC + 0 (нет изменений между BIOS и временем UTC) ,
Попробуйте изменить свое местоположение на Рейкьявик (столица Исландии). Вуаля! Ваше время Ubuntu изменится, чтобы соответствовать вашему времени BIOS.
источник