- Как исправить расхождение времени при использовании двойной загрузки Windows-Linux
- Почему двойная загрузка Linux изменяет время в Windows?
- 1. Настройка Linux на использование местного времени для аппаратных часов
- 2. Настройка Windows на автоматическую синхронизацию времени из Интернета
- 3. Настройка Windows на использование времени UTC для аппаратных часов
- Заключение
- Fix Incorrect Time in Windows 11 That Dual boot with Ubuntu Linux
- Method 1.) Set RTC to local time zone in Ubuntu:
- Method 2.) Enable UTC time in Windows 11:
- Refresh the display time to apply change:
- Ji m
- Linux- Windows Timezone Mapping?
- 3 Answers 3
Как исправить расхождение времени при использовании двойной загрузки Windows-Linux
Пробовали ли вы когда-нибудь установить Linux рядом с Windows? Как правило вы попадете в неудачный эксперимент по путешествию во времени. Вы запускаете Windows после Linux в 17:00, и вдруг увидите, что часы показывают, что еще только 15:00.
Это раздражающее явление присутствует почти во всех системах двойной загрузки Windows-Linux. Давайте узнаем, почему это происходит и как исправить эту странную проблему со временем и вернуться к текущей дате и времени.
Почему двойная загрузка Linux изменяет время в Windows?
Суть проблемы заключается в том, как обе эти операционные системы управляют аппаратными часами.
Аппаратные часы — это физический сегмент материнской платы вашего компьютера, который отвечает за поддержание времени. Он питается от батарейки CMOS и управляется ядром операционной системы, в которой вы работаете. Различные операционные системы управляют этими часами по-разному.
Linux устанавливает аппаратные часы на универсальное координированное время (UTC), тогда как Windows предполагает, что аппаратные часы уже используют местное время, полученное из вашего текущего местоположения.
При использовании двойной загрузки Linux продолжает показывать правильное время, потому что, хотя он устанавливает аппаратные часы на UTC, он вычисляет разницу во времени между UTC и вашим местным временем и устанавливает внутреннее смещение в часах ОС.
Windows, однако, не знает и не привязан к изменению часового пояса аппаратных часов, и продолжает считывать время с аппаратных часов и представлять его как местное время.
Чтобы исправить это, необходимо настроить обе операционные системы на единогласную работу с аппаратными часами или часами ОС.
Давайте узнаем три способа исправить ситуацию, когда Windows показывает неправильное время при двойной загрузке после Linux.
Вы должны использовать только один из этих способов и не комбинировать их.
1. Настройка Linux на использование местного времени для аппаратных часов
Как обсуждалось ранее, проблема возникает из-за того, что Linux устанавливает аппаратные часы на UTC. Самый простой подход к устранению неправильного отображения времени в Windows заключается в настройке Linux для установки аппаратных часов, иначе известных как часы реального времени (RTC), на местное время.
Тогда Windows будет получать местное время с системных часов и отображать его, устраняя проблему. Вот как настроить RTC на использование местного времени в Linux:
1. Запустите новое окно терминала.
2. С помощью команды timedatectl настройте RTC на использование местного времени, выполнив эту команду с префиксом sudo:
3. Перезагрузите систему вручную или введите команду reboot.
Вот и все шаги, необходимые для настройки аппаратных часов на использование местного времени в Linux.
Чтобы отменить изменения, просто введите ту же команду с небольшой правкой, заменив «1» на «0». Это самый простой способ исправить проблему несоответствия времени при двойной загрузке.
2. Настройка Windows на автоматическую синхронизацию времени из Интернета
Предыдущий способ должен был устранить все ваши проблемы со временем. Если это не так, вот быстрый способ исправить время в Windows без необходимости перезагрузки в Linux.
И Windows, и Linux оснащены функцией автоматической синхронизации времени, которая синхронизирует системное время с сервером времени в Интернете.
Вот шаги, которые необходимо выполнить, чтобы включить автоматическую синхронизацию времени:
Щелкните правой кнопкой мыши в правом нижнем углу панели задач, где отображается время. В появившемся меню нажмите на Настройка даты и времени . Или вы можете открыть Настройки > Время и язык > Дата и время . Установите правильный часовой пояс, если он был неправильным, затем включите Установить время автоматически , нажав на ползунок под надписью, и завершите настройки, нажав на Синхронизировать сейчас. Вы должны увидеть, что время изменилось на местное.
Теперь вы можете спокойно закрыть окно настроек и сосредоточиться на более важных делах.
Вот и все шаги, которые необходимо выполнить, чтобы исправить время в Windows, нарушенное при двойной загрузке Linux.
3. Настройка Windows на использование времени UTC для аппаратных часов
Как говорилось ранее, Windows предполагает, что аппаратные часы настроены на местное время, и не утруждает себя повторным преобразованием их в местное время, поскольку это было бы излишним.
Чтобы решить эту проблему, можно настроить Windows на конфигурацию аппаратных часов и установить их на UTC, чтобы Windows была вынуждена преобразовывать UTC с аппаратных часов в местное время.
Это более сложное решение, поэтому рекомендуется сначала попробовать два предыдущих решения и только потом прибегать к этому. В случае, если оба предыдущих решения не сработали, выполните следующие действия:
- Используя строку поиска или сочетание клавиш Win + R , откройте диалоговое окно «Выполнить» в Windows и введите regedit .
- Открыв редактор реестра Windows, перейдите в это место: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation .
- Щелкните правой кнопкой мыши на пустом месте, выберите New и добавьте новую запись Параметр Q-WORD (64-бита) , дав ей имя RealTimeisUniversal . Если вы используете 32-битную версию Windows, вам нужно добавить запись Параметр D-WORD (32-бита) .
- После того как запись добавлена, дважды щелкните на ней, установите значение 1 и перезагрузите систему.
Теперь Windows сначала установит аппаратные часы на UTC, а затем преобразует UTC в ваше местное время, предоставляя вам правильное время и дату и устраняя таким образом расхождение во времени, возникающее при двойной загрузке Windows с Linux.
Заключение
Неправильное время при двойной загрузке — это общая проблема, с которой сталкиваются все пользователи при использовании двойной загрузки, независимо от того, какую версию Windows и Linux они используют.
Нежелательное перемещение во времени может доставить вам определенные неудобства, но теперь вы знаете, как решить эту проблему тремя различными способами.
Хотя виновник этой проблемы обычно кроется в том, как Linux и Windows подходят к измерению времени. Но иногда это может быть признаком неисправного оборудования или проблем с безопасностью, например, скрытым вредоносным ПО в вашей системе.
В случае, если ни одно из этих исправлений для двойной загрузки не помогло, проверьте работоспособность оборудования или поищите следы вредоносного ПО в системе.
Fix Incorrect Time in Windows 11 That Dual boot with Ubuntu Linux
For those dual boot Windows 11 with Ubuntu or other Linux, you’ll find different time display in each system. And usually Windows shows the incorrect clock time.
There are two time standards, localtime and Coordinated Universal Time (UTC, aka GMT). The local time standard is dependent on the current time zone, while UTC is the global time standard that is independent of time zone.
By default, Windows uses localtime, but Ubuntu uses UTC. So you get the different time in the dual boot. And the solution is set the same time standard in the two systems.
Method 1.) Set RTC to local time zone in Ubuntu:
Though it’s not recommended, set the Real Time Clock (RTC) to use local time zone just works.
Firstly, open terminal either from system app launcher or by pressing Ctrl+Alt+T on keyboard. When it opens, run command:
timedatectl set-local-rtc 1 --adjust-system-clock
Then you can check system clock status via command:
And “RTC in local TZ: yes”, where TZ means time zone, tells localtime standard is in use.
As I said “it’s not recommended“, it warns that localtime standard may cause various problems with time zone changes and daylight saving time adjustments.
You can restore UTC time standard and do method 2 instead by running command:
timedatectl set-local-rtc 0
Method 2.) Enable UTC time in Windows 11:
If you’re now running Windows 11, you can easily enable the UTC / GMT time standard via following steps.
1. Firstly, click on ‘Search’ icon on task bar. Then search for and right-click on ‘Command Prompt’ and select ‘Run as administrator’.
2. When command prompt opens, copy and paste the command below and hit run:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
The command creates a registry key to tell Windows to use universal time standard.
Refresh the display time to apply change:
If Windows 11 shows the incorrect date and time, search for and open “Settings” from start menu. Then go to “Time & Language” from left pane, click “Date & time” and finally disable and re-enable ‘Set time automatically’ option will correct your system time.
For Ubuntu users, it may also display incorrect time when “Automatic Date & Time” not enabled. Simply enable or refresh the option in System “Settings -> Date & Time” will do the trick.
Ji m
I’m a freelance blogger who started using Ubuntu in 2007 and wishes to share my experiences and some useful tips with Ubuntu beginners and lovers. Please comment to remind me outdated tutorial! And, notify me if you find any typo/grammar/language mistakes. English is not my native language. Contact me via [email protected] Buy me a coffee: https://ko-fi.com/ubuntuhandbook1
Linux- Windows Timezone Mapping?
All the Timezone in Windows are displayed in such a way like (GMT+10:00) Canberra, Melbourne, Sydney , GMT and Offset and the place. In turn , the Linux is having every timezone as directory mapping in /usr/share/zoneinfo/[Continent]/[Place]. I am in need of mapping every Windows timezone to the Linux timezone for my application. like
(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi => Asia/Calcutta
Now the problem surface for the International Date Line West which lies between Russia and America. In Windows, its marked by (GMT-12:00) International Date Line West and from various sources I found that in Linux its Etc/GMT+12.
(GMT-12:00) International Date Line West => Etc/GMT+12
(GMT+12:00) Coordinated Universal Time+12 => Etc/GMT-12 (GMT-02:00) Coordinated Universal Time-02 => Etc/GMT+2 (GMT-11:00) Coordinated Universal Time-11 => Etc/GMT+11
This keeps me puzzled and my app works closely with the Timestamp w.r.t UTC and the UTC offset. So this mapping is confusing me and the app. Can anyone explain why there is a vice versa of -12 and +12 Offset in both for a same place? Thanks in Advance 🙂
Do you have the mapping that can be shared? I am working on similar thing in my projects. Or some automatic way to map it?
3 Answers 3
Unicode.org hosts a mapping as part of the CLDR. You can get to the latest version here. There are also XML versions of the data linked from that page.
You can find example code (in Python) of how to generate a mapping from the XML data here.
Obligatory Time Zone Rant:
Note that whoever implemented the timezone support in Windows was on drugs. I’m not kidding you. Look at the timezone names. Why is Central European time known as «Romance standard Time». Romance? What, because it includes Paris, or? Roman Standard Time could have made sense a it also includes Rome, but Romance!?
Also, in the registry the timezones are not organized under their id. No, they are, insanely, organized under their display name! Since that is localized, it means every timezone will be located under a different key in different translations of Windows. So to find the right timezone, you have to look through all the timezone to see which has the correct id.
I have example code of that too here. See the get_win_timezone() function.
I wonder if it is the same guy who designed this that decided that POSIX should reverse the sign on timezones, so that -8 hours mean plus 8 hours. In any case, I’m sure they were smoking something illegal together.