Различни времена за windows и ubuntu. Времето се губи в Ubuntu и Windows

Има моменти, когато това обикновено се случва при инсталиране на втора система linux, времето в системите започва да се обърква, например сте работили под вашия linuxи реши да се премести в прозорци, и установи, че часът и датата са напълно грешни или обратното, това се дължи на разликите във формата на часа, тези операционни системи работят с него по различен начин, малко теория и така, нека започнем с linux, тези операционни системи работят с UTC
UTC- както хардуерните, така и софтуерните часовници са базирани на средното време по Гринуич. Тоест часовникът дава универсално време в нулевата часова зона. Например, ако вашата часова зона е GMT+3, Москва, часовникът ще изостане с три часа. И потребителите локално добавят към това време корекция за часовата зона, например плюс +3. Всеки потребител добавя необходимото изменение. Това се прави на сървърите, така че всеки потребител да може да получи правилното време за своята часова зона.
прозорцина свой ред работи с местно време
местно време- в тази версия софтуерният часовник също работи според средното време по Гринуич, но хардуерният часовник работи според времето в местната часова зона. Няма разлика за потребителя; все пак трябва да добавите корекция към вашата часова зона. Но когато зарежда и синхронизира времето, Windows изважда 3 часа (или някаква друга корекция на часовата зона) от хардуерното време, така че софтуерното време да е правилно.
така, изглежда, че сме подредили теорията, сега нека да преминем към практиката и така, в началото ще заредим нашите прозорци, стартирайте конзолата като администратор и изпълнете команди за 32-битова система
Reg добавяне на HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
или за 64 бита
Reg добавяне на HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
но часовникът все още ще бъде синхронизиран с времето на сървъра; за да направите това, изключете услугата за синхронизиране на часовника
sc config w32time start= деактивиран
Сега рестартираме нашата система и стартираме linuxвлезте в терминала под корени изпълнете командите
timedatectl set-local-rtc 1 --adjust-system-clock
И
sed -i "s/UTC=да/UTC=не/" /etc/default/rcS
погледнете състоянието на хардуерния часовник
sudo timedatectl
Сега рестартираме отново, влизаме в биос и задаваме дата и час, проверяваме...
ако по някаква причина трябва да деактивираме всичко това, тогава изпълняваме командите в Linux
timedatectl set-local-rtc 0
И
sed -i "s/UTC=не/UTC=да/" /etc/default/rcS
в windows, конзола като администратор
Reg добавяне на HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 0
И
sc config w32time start= изискване
Друг вариант би бил следният, в linux debian и производни
изпълнете командата, за да зададете местното време
sudo hwclock --localtime --adjust
ако искаме да го върнем обратно
sudo hwclock --utc --adjust
сега да проверим
timedatectl | grep local
ако отговорът
RTC в местната TZ: не
тогава нашето време тиктака според Гринуич, но ако отговорът
RTC в местната TZ: да
това означава, че времето ни тече според установената система
това е всичко, мисля, че ви беше полезно

В режим UEFI (сигурно зареждане). Времето ми в BIOS е правилно.

Когато стартирам Ubuntu и след това стартирам Windows 10, той показва грешния час. Трябва да го поправя ръчно или онлайн в Windows 10 и когато рестартирам в Windows 10, това не е проблем. Часовникът показва точното време. И след това, когато рестартирам в Linux, часовникът е правилен, но когато се върна към Windows 10, часовникът започва да работи отново.

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

Предимството на използването на хардуерен часовник като UTC е, че не е необходимо да променяте хардуерния часовник, когато се движите между часови зони или когато лятното часово време (DST) започва или завършва, тъй като UTC няма време или часови отмествания.

Промяната на 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 версия 5.00 "RealTimeIsUniversal"=dword:00000001

Забележка. Услугата за време на Windows все още ще записва местно време в RTC, независимо от настройката на системния регистър по-горе, когато е изключена, така че е удобно да деактивирате услугата за време на Windows с помощта на тази команда (ако се изисква синхронизиране на времето, докато Windows използва синхронизиране на време от трета страна ):

Sc config w32time start= деактивирано

Отмяна на промяната

Можете да създадете файл със следното съдържание и след това да щракнете двукратно върху него, за да обедините оригиналните промени, както по-горе:

Редактор на системния регистър на Windows версия 5.00 "RealTimeIsUniversal"=-

Ако услугата Windows Time е била деактивирана, активирайте я отново с помощта на командата:

Sc config w32time start= demand

Направете Linux "местно" време

За да кажете на вашата Ubuntu система, че хардуерният часовник е настроен на "местно" време:

  1. променете /etc/default/rcS
  2. добавете или променете следния раздел

    # Задайте UTC=да, ако вашият хардуерен часовник е настроен на UTC (GMT) UTC=не

Ubuntu 15.04 и по-нови системи (напр. Ubuntu 16.04 LTS):

    отворете терминал и изпълнете следната команда

    Ако искате да видите на нашия уебсайт отговори на вашите въпроси относно всичко, свързано с технологията на Apple, операционната система Mac OS X (и стартирането й на компютър), пишете ни чрез или.

    Получихме следния въпрос:

    добър ден!
    Hackintosh работи със Snow Leopard, Windows 7 и Ubuntu. Времето постоянно се губи след рестартиране ((Mac OS винаги го връща с 4-5 часа! Кажете ми как да поправя проблема

    Проблем със времева синхронизацияе от значение не само за Hackintoshes, но и за истински Mac, на които Windows работи чрез Boot Camp. Причината за това е много проста: Mac OS X винаги приема, че времето, записано в BIOS (или EFI), е записано там във формат UTC- с други думи, според Гринуич. Към него тя добавя съответната корекция за часовата зона.

    Но Windows прави нещата по различен начин: то чете директновреме от BIOS. И ако промените това време или то се синхронизира автоматично, то ще бъде записано в BIOS в коригирания формат: UTC+корекция.

    Как да разрешим това противоречие? Има два подхода: един от страна на Mac OS, а другият от страна на Windows и Linux.

    Решение, използващо Mac OS X

    Да кажем веднага, че това не е най-добрият начин. Изводът е, че за Mac OS X задаваме часовата зона на средното време по Гринуич. Например в настройките (дистанционно дата и час, раздел Часова зона) изберете като ваше населено място Рейкявик.

    Освен това на табл "Дата и час"Не забравяйте да деактивирате автоматичната синхронизация на времето, в противен случай ще се окаже още по-лошо от преди.

    След тези стъпки часът в Windows винаги ще бъде правилен и Mac OS X няма да го обърка. Но защо това не е най-добрият начин? Факт е, че ако синхронизирате някаква притурка с Mac OS X - например iPhone, тогава грешната часова зона ще изкриви много важни данни. Например часът на входящия SMS също ще бъде Гринуич.

    Решение, използващо Windows и Linux

    Друг начин е Windows и Linux да четат времето от BIOS по същия начин, както прави Mac OS. За щастие такава възможност наистина се предоставя, но е скрита много дълбоко.

    В Windows ще трябва да стартирате програмата от прозореца Run regeditРедактор на регистъра.След това отидете на темата \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformationи създайте DWORD стойност там с името RealTimeIsUniversalи стойност равна на едно:

    В Linux (поне в Ubuntu) трябва да редактирате файла /etc/default/rcSвъв всеки текстов редактор и заменете съдържанието на параметъра "UTC=не"На "UTC=да".

    След това рестартирайте в Mac OS X и задайте вашата родна часова зона, като в същото време можете да активирате автоматично синхронизиране на времето през интернет. След рестартиране в Windows и Ubuntu ще видите точно същото време.

    Използването на няколко операционни системи на един и същ компютър понякога води до конфликт помежду им, когато използват едно и също нещо. Понякога се отнася до нещо толкова просто като времето. Дори такива популярни компютърни операционни системи като Windows и Ubuntu не могат да се разбират и постоянно променят времето си на неправилно.

    Причините за това явление всъщност са прости: Windows възприема системното време (което се показва в настройките на CMOS) като локално (като се взема предвид часовата зона), а Ubuntu - според UTC (средното време по Гринуич, без да се взема предвид часова зона). Поради това те настройват системното време, за да отговарят на тяхната логика, нарушавайки логиката на другия.

    Решението на проблема също е просто: или принудете Windows да добави отместване на часовата зона към системното време, или попречете на Ubuntu да добави това отместване.

    Настройки в Ubuntu

    Започвайки от версия 16.04, настройките за показване на часа могат да се превключват с помощта на две команди.

    Активиране на показване на местно време:
    sudo hwclock --localtime --adjust

    Активиране на показване на UTC:
    sudo hwclock --utc --adjust

    В по-старите версии на Ubuntu трябва да редактирате rtC файла:

    sudo nano /etc/default/rcS

    Трябва да добавите (за да покажете местното време) или да премахнете този ред (за да покажете UTC времето):

    Настройки в Windows

    В Windows почти всички системни настройки се редактират в системния регистър; TimeZoneInformation, който е необходим в тази ситуация, не е изключение. Намира се в деловодството на този адрес:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

    Тук трябва да добавите или промените параметъра RealTimeIsUniversal. Типът му е DWORD. За да може системното време да се чете в UTC, трябва да зададете стойността на 1; за да го разпознаете като локално, трябва да зададете стойността на 0 или напълно да премахнете този параметър.

    Редакторът на системния регистър може да се стартира с помощта на командата regedit.