Час роботи годинника вимкнено для подвійного завантаження


303

Система подвійного завантаження Windows XP Pro та Ubuntu 12.04.

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

Це нова установка 12.04. У мене не було цієї проблеми перед перевстановленням Ubuntu.

Відповіді:


265

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

Кілька завантажувальних систем, конфлікти часу

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

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

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

Оскільки Intrepid (8.10), за замовчуванням UTC = так.

Зробіть 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 Time все одно запише місцевий час у RTC незалежно від наведених вище параметрів реєстру при відключенні, тому зручно відключити службу Windows Time за допомогою цієї команди (якщо синхронізація часу все ще потрібна, коли в Windows використовується будь-який сторонній час рішення синхронізації):

sc 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

Зробіть 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
    

53
О Боже. Я не можу повірити, що вони були досить глумими, щоб використовувати місцевий час на апаратному годиннику. Чому б ти коли-небудь коли-небудь робив це?
іоно

20
@twome, оскільки, оскільки в перші дні MS-DOS не було багато на шляху створення мереж, і не було б звичайним переміщенням ПК так далеко, щоб він переміщав часові пояси. (І так, навіть враховуючи цю історію, це все ще не був найкращим кроком).
Джон Ханна

9
@twome, хоча я згоден з тим, що апаратний годинник залишається універсальним, оскільки він не зберігає інформацію про часовий пояс, з цим є мало проблем: A) BIOS / UEFI мають різні функції, такі як таймери автоматичного пробудження / сну, де ви встановити час для цих тригерів. Було б дивно встановити ці часи в UTC - принаймні для середнього користувача. Б) Як говорив Джон вище, причини зворотної сумісності.
Шахріяр Іманов

5
У Windows PowerShell запустіть цю команду для оновлення згаданого властивості реєстру: New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\TimeZoneInformation -Name RealTimeIsUniversal -PropertyType DWord -Value 00000001
Анатолій Миронов

6
Для тих, хто скидає текст, потрібно змінити налаштування лише в одній з ОС, а не в обох.
Олександр Рево

67

Щоб встановити годинник BIOS на місцевий час замість UTC у системній версії (15.04 і вище), вам доведеться скористатися timedatectlкомандою. За даними Arch Wiki :

Через командний рядок можна встановити апаратний годинний годинник. Ви можете перевірити, що ви вирішили використовувати:

$ timedatectl | grep local

Апаратний годинник можна запитувати і встановлювати за допомогою timedatectl команди. Щоб змінити стандартний час апаратного часу на місцевий час, використовуйте:

# timedatectl set-local-rtc 1

Якщо ви хочете повернутися до апаратного годинника, що знаходиться в UTC, зробіть:

# timedatectl set-local-rtc 0

4
На Ubuntu 16.10 це допомогло зробити "hwclock --systohc --localtime". Це записує "локальну частину" в / etc / adjtime і тим самим робить її постійною.
користувач1050755

1
@ user1050755 це до, після, або замість команди timedatectl?
нач

36

Ваш часовий пояс - східний , що наразі є EDT (східний літній час). EDT - це UTC мінус чотири години, що відповідає зсуву, який ви відчуваєте.

Коли це відбувається в системі з подвійним завантаженням, це зазвичай тому, що одна операційна система вважає, що апаратний годинник відстежує місцевий час, а інша операційна система вважає, що апаратний годинник відстежує UTC.

У вашому випадку ваш апаратний годинник, ймовірно, встановлений на місцевий час, і:

  • Windows налаштований на використання місцевого часу, що (враховуючи ваші налаштування часу) є правильним .
  • Ubuntu налаштований на використання UTC, що (з огляду на ваші часові настройки) є неправильним .

Якби ви просто скинули час в системі Ubuntu, вручну або автоматично , це було б неправильно в Windows, тому це не гарне рішення.

Натомість найкращим рішенням є, мабуть, перенастроювання Ubuntu для трактування апаратного часу як місцевого часу (тоді ви можете залишити конфігурацію Windows і час апаратного годинника в спокої).

Для цього відредагуйте /etc/default/rcSяк root та переконайтесь, що він має 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#Make_Linux_use_.27Local.27_time

(Але це дуже загально; я написав цю відповідь, щоб спеціально застосувати до вашої ситуації, що є дещо поширеною проблемою.)


Зауважте, що це може статися також при переході від одного випуску Ubuntu до другого, як це було у мене. Я можу порекомендувати виконати вищезазначене виправлення, а потім також синхронізувати годинник вручну, як у цій відповіді (налаштувавши його на роботу з systemd): askubuntu.com/a/254846/139735
starbeamrainbowlabs

Це має бути прийнятою відповіддю. У мене була встановлена ​​система Windows і працює нормально, потім я встановив Ubuntu, і годинник перейшов у сірий простір - я не бачу причини, чому я повинен змінювати налаштування Windows, якщо явно додавання linux порушило мою конфігурацію.
Пшемек D

13

Виправлення / etc / rcS не працювало на моїй установці Win7 / Ubuntu 14.04x64, а також не було виправлень через GUI годинника. Оскільки корінь проблеми - це час BIOS VS UTC, а Windows - це біль у задці, коли справа доходить до використання UTC, я просто вибрав на карті точку, яка використовує UTC + 0 (ніяких змін між BIOS та UTC часом). .

Спробуйте змінити своє місцезнаходження в Рейк'явік (столиця Ісландії). Вуаля! Ваш час Ubuntu зміниться відповідно до вашого часу BIOS.


Ха-ха! Дивовижно. : DI насправді не цікавить моє місцезнаходження. Це було виправлено дві секунди. Дуже дякую.
Блідо-блакитна крапка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.