Різний час в Windows і Linux Mint


18

Я встановив Linux Mint спочатку на свій Acer Aspire 4930, а потім з двома завантаженнями в Windows 7.

Я завжди бачу правильний час на Linux Mint, але при завантаженні в Windows час зміщується на кілька годин, навіть після скидання часу, при перезавантаженні він знову показує неправильний час.


Запитання:

  1. Чому це відбувається?

  2. Що я можу з цим зробити?

Відповіді:


17

У Windows системний годинник RTC традиційно зберігається за місцевим часом. У Unix та Linux він традиційно зберігається в UTC і /etc/localtimeвикористовується для позначення поточного часового поясу, щоб відображений час був правильним.

Ці два світогляди стикаються в конфігураціях з двома завантаженнями, оскільки існує лише одна RTC. Зазвичай ви кажете Linux припускати, що RTC - це місцевий час (тому що Windows не може сказати). Це залежить від одного Linux на інший, але так як монетний двір, як Ubuntu ви можете ймовірно встановити UTC=noв /etc/default/rcS. Тоді ви можете встановити годинник на місцевий час у Windows, а Linux залишить його в спокої після цього.


Примітка редактора :

Цей файл не присутній з Linux Mint 19 (а точніше з бази Ubuntu 18.04):

/etc/default/rcS

2
UTC вже встановлений на "ні", різниця в часі все ще є.
Балістичний

5

Монетний двір 18.2 KDE, схоже, не захищений від інших виправлень (включаючи додаткові, які я знайшов під час пошуку). Файли, згадані у відповідях aecolley та error404, або більше не існують, або, здається, більше не існують там, де посилаються на налаштування, принаймні у поточній версії KDE. Команда у відповіді Джулі Пелтьє працювала на 18,2 Кориця, але не на 18,2 KDE.

Спробувавши півдесятка запропонованих рішень, наступне зафіксувало його на 18,2 KDE. З відображеним правильним часом, запустіть таку команду терміналу:

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

Джерело: Поради та рекомендації для Linux Mint після встановлення [Монетний двір 18 - Коричневе видання]

Це також повинно працювати для Кориці як альтернативного рішення, і я припускаю, що і інші ДЕ.

Примітки редактора:

  • Не sudoпотрібно, запускайте цю команду як ваш користувач.

  • Він зберігається при перезавантаженні, має бути постійним.

  • Тестували на Linux Mint 19.1 Cinnamon, що базується на Ubuntu 18.04.


Я підтверджую, він працює на монетному дворі 18.3 Кориця.
дхром

@Vlastimil, минуло деякий час, як я це зробив. Моє спогад про те, що судо не потрібно (якби воно було, я б його включив у відповідь, і подібні виправлення також не стосуються судо, тому я впевнений, що це не так). І так, це зберігається.
fixer1234

@ fixer1234 Дякую, товариш! Ви врятували мені день, і я думаю, що всі :)
LinuxSecurityFreak

3

Найбільш загальний спосіб зробити це за допомогою:

hwclock --systohc --localtime

який є стійким при перезавантаженнях і працює в більшості систем.


Якщо ваш годинник відображає правильний час, тоді вам потрібна команда hwclock --systohc --localtime, яка встановить апаратний годинник на місцевий час, використовуючи значення, відображене в даний час системою. Однак якщо ваш годинник зараз неправильний (тобто апаратний годинник є місцевим часом, але система додає зміщення для вашого часового поясу, внаслідок чого відображається неправильне відображене значення), тоді вам це потрібно hwclock --hctosys --localtime.
youen

@youen, у мене була така ситуація, і твоя модифікація просто відкинула час у інший бік. Виправленням для мене було скидання годинника на правильний час, а потім використання команди у відповіді Джулі.
fixer1234

@ fixer1234 Добре, дивно. Якщо чесно, я не спробував другої команди у своєму коментарі, оскільки до цього часу я вже зафіксував годинник. Я вважаю, однак виконання будь-якої з цих команд, а потім встановлення годинника на потрібний відображений час, зробить трюк (запустивши першу команду знову, мабуть, не потрібно, якщо ви вже виконали другу). Радий, що він зрештою працював для вас :)
youen

1

УВАГА

Цей метод є помилковим у попередніх 7 версіях Windows, але він вирішує проблему на стороні Windows рівняння, а не на кінці Linux: не потрібно встановлювати Linux для використання локального часу .


Взяте з найвідомішого та найцікавішого Arch Linux Wiki :

Однією з причин, що користувачі часто встановлюють RTC в локальний час - це подвійне завантаження з Windows (яке використовує localtime).

Однак Windows [може обробляти RTC, що є UTC], за допомогою простого виправлення реєстру. Рекомендується налаштувати Windows на використання UTC, а не на Linux, щоб використовувати локальний час.

Використовуючи regedit, додайте до реєстру DWORDзначення з шістнадцятковим значенням 1:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

Це можна зробити з командного рядка адміністратора, який працює:

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

Крім того, створіть файл * .reg (на робочому столі) із наступним вмістом та двічі клацніть його, щоб імпортувати його до реєстру:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
     "RealTimeIsUniversal"=dword:00000001

Якщо вищезазначене, мабуть, не має ефекту, і використовується 64-бітний варіант Windows, використання QWORDзначення замість DWORDзначення може вирішити проблему.

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

Після встановлення цього значення може знадобитися оновити апаратний годинник та системний годинник. Якщо у вас виникли проблеми зі зміщенням часу, спробуйте перевстановити tzdata та знову встановити свій часовий пояс:

# timedatectl set-timezone America/Los_Angeles

У мене справді виникає ця проблема на моїй власній машині Windows, але поки я її просто ігнорував; Я, однак, побачу, чи працює цей метод, і повідомити про свої висновки.
Олексій Магура

1
Це працює для мене. Велике дякую! Таким чином, мені не потрібно змінювати всі установки Linux, які є на моєму ПК.
Локеш

0

Змінити /etc/timeadjзмінну (як кореневу) від " UTCдо" LOCAL.

Це впорядкувало проблему, не поспішаючи з regedit на стороні Windows.


0

Виконайте одну з цих двох команд, які відповідають вашому місцевому часу

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

'або'

timedatectl set-local-rtc 0 --adjust-system-clock
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.