If-Koubou

Как да се определи Windows и Linux показва различни времена при двойно зареждане

Как да се определи Windows и Linux показва различни времена при двойно зареждане (Как да)

Вашият компютър съхранява времето на хардуерен часовник на дънната си платка. Часовникът следи времето, дори когато компютърът е изключен. По подразбиране Windows приема, че времето се съхранява в локално време, докато Linux приема, че времето се съхранява в UTC време и се прилага офсетов. Това води до една от операционните ви системи, показващи грешното време в ситуация с двойно зареждане.

За да поправите това, имате две възможности: Направете Linux да използва местното време, или Windows да използва UTC време. Не следвайте двете стъпки на инструкциите или те все още няма да говорят на същия език! Препоръчваме Ви да използвате Linux, ако е възможно, местно време.

Вариант 1: Направете Linux с локално време

Осъществяването на Linux използва местното време по същия начин, по който Windows прави, вероятно е най-добрият вариант. Windows има настройка на системния регистър, която го принуждава да съхранява времето като UTC, но според съобщенията не е добре поддържана и може да причини проблеми с някои приложения от трети страни, които винаги приемат хардуерния часовник в местно време. Също така е несъвместима със собствената услуга за синхронизиране на интернет в Windows.

Стъпките, които правят вашата Linux система да използва местното време, могат да се различават от Linux дистрибуцията до разпространението на Linux. Въпреки това, при всяка Linux дистрибуция със система, можете да използвате timedatectl команда за тази промяна. Това ще работи на съвременните версии на Ubuntu, Fedora, Red Hat, Debian, Mint и други дистрибуции на Linux, които използват systemd.

За да направите тази промяна, първо отворете терминален прозорец на вашата Linux система. Изпълнете следната команда, за да поставите часовника за реално време на дънната платка в местното време. Linux ще съхранява времето в локално време, точно както Windows прави.

timedatectl set-local-rtc 1 - настройка на системния часовник

За да проверите текущите си настройки, стартирайте:

timedatectl

Ако видите "RTC в местен TZ: да", Linux е настроен да използва локалната часова зона вместо UTC. Командата ви предупреждава, че този режим не се поддържа напълно и може да причини проблеми при превключване между часови зони и време на лятното часово време. Този режим обаче вероятно е по-добре поддържан от опцията UTC в Windows. Ако работите с Windows с двойно зареждане, Windows ще работи за вас.

Ако някога искате да отмените тази промяна, изпълнете следната команда:

timedatectl set-local-rtc 0 - настройка на системния часовник

Вариант 2: Използване на Windows UTC Time

Използването на Windows като UTC време като Linux вероятно не е най-добрият вариант. Можете да редактирате системния регистър, за да използвате Windows UTC времето, но това би могло да причини повече проблеми, отколкото просто да накара Linux да използва местното време.

Ако искате да направите това, първо ще искате да деактивирате функцията за актуализиране на времето по интернет в Windows. Това гарантира, че Windows няма да зададе неправилно часовника, когато се опитва да синхронизира текущото време от Интернет. В Windows 10 отидете на Settings> Time & language и деактивирайте "Set time automatically". В Windows 7 щракнете с десния бутон на мишката върху системния часовник в лентата на задачите и изберете "Adjust date / time". Кликнете върху раздела "Интернет време", кликнете върху бутона "Промяна на настройките", махнете отметката от опцията "Синхронизиране със сървър за време в интернет" и кликнете върху "OK".

Накарайте Windows да използва UTC времето, като редактирате регистъра

Вече ще трябва да добавите подходящата стойност към системния регистър на Windows. Ето стандартното ни предупреждение: Редакторът на системния регистър е мощен инструмент и злоупотребата с него може да направи системата нестабилна или дори неизползваема. Това е доста лесна хакване и не трябва да имате проблеми, стига да следвате инструкциите. Това каза, ако никога не сте работили с него преди, помислете за четене как да използвате редактора на системния регистър, преди да започнете. И определено архивирайте регистъра (и вашия компютър!), Преди да направите промени.

Първо, отворете редактора на системния регистър, като щракнете върху Старт, въведете "regedit" и натиснете Enter. Съгласете се със съобщението за сигурност, което се показва.

Придвижете се до следния клавиш в левия прозорец на редактора на системния регистър:

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ TimeZoneInformation

В най-новите версии на Windows 10 можете да копирате и поставите горния ред в полето за адрес. Въпреки това, този хак ще работи и на Windows 7.

Щракнете с десния бутон на мишката върху бутона "TimeZoneInformation" и изберете New> DWORD (32-bit) Value.

Назовете новата си стойност RealTimeIsUniversal.

Щракнете двукратно върху RealTimeIsUniversal стойност, която току-що създадохте, задайте стойността на данните 1, и кликнете върху "OK".

Вече сте готови и можете да затворите редактора на системния регистър. Windows ще съхранява времето в UTC, точно както Linux прави.

Ако някога искате да отмените тази промяна, върнете се на това място в системния регистър, щракнете с десния бутон на мишката върху RealTimeIsUniversal добавена стойност и да го изтриете от регистъра си.

Изтеглете нашия регистър с едно кликване

Ако не искате сами да редактирате регистъра, можете да използвате хакването на регистъра, който можете да изтеглите. Създадохме един хак, който прави Windows да използва UTC време, и това, което го възстановява на местно време. И двата са включени в следния ZIP файл. Просто изтеглете файла, щракнете двукратно върху хак, който искате да използвате и се съгласявате да добавите информацията към регистъра си.

Накарайте Windows да използва времето UTC

Горните хакове правят същото, което описахме по-горе. Управлението на времето за използване на Windows UTC създава записа "RealTimeIsUniversal" със стойност "1", докато промяната в "Използване на локално време в Windows" изтрива записа "RealTimeIsUniversal".

Ако някога искате да видите какво прави този или друг .reg файл, щракнете с десния бутон върху него и изберете "Редактиране", за да видите файла в Notepad. Можете лесно да направите свой собствен регистър хакове, които просто се състоят от списък на записи в системния регистър, за да добавите, редактирате и премахнете в правилно форматиран списък.

Какво за двуядрени Windows зареждане на Mac?

Макар MacOS от Apple да използва UTC времето като Linux, не трябва да правите нищо особено, когато работите с Windows в Boot Camp на Mac. Драйверите на Apple Boot Camp обработват всичко. (Hackintosh dual-booters са друга история, обаче, и ще трябва да се опитате да използвате Windows Registry ощипвам по-горе.)

Ако се чудите защо Windows използва местно време вместо UTC като другите операционни системи, обяснява го официалният блог на Microsoft The Old New Thing. Накратко, това е да се запази обратната съвместимост с Windows 3.1 системите и да се предотврати объркване на хората, когато зададат времето в BIOS на компютъра. Разбира се, производителите на компютри избраха локалното време, за да бъдат съвместими с Windows и Windows избраха местното време, за да бъдат съвместими с решението, което производителите на компютри решиха да изберат, така че цикълът се самоутвърди.

Понастоящем няма стандарт за маркиране дали времето се съхранява като UTC или локално време в BIOS или UEFI фърмуера, което вероятно е най-логичното решение. Но това ще изисква известна работа и повечето хора никога няма да забележат, че различните операционни системи използват различни времеви формати - с изключение на конфигурациите с двойна батерия.