Прикрепване на Windows и Linux, показващи различно време при двустранно стартиране
Ако системата ви двойно зарежда Windows и Linux, може да забележите, че е невъзможно системните часовници да се синхронизират. Без значение как сменяте часовника в една операционна система, той не решава проблема с другата операционна система. Това се дължи на несъгласие относно методологията за поддържане на време между Windows и Unix-базирани операционни системи. За щастие, това е относително лесно решение.
Защо се случва това?
Вашият компютър съхранява текущото време в часовник на вашата дънна платка. Това позволява на компютъра да следи времето дори когато е изключен. За да отчитат часовите зони, различните операционни системи използват различни методи. Windows приема, че местното време е съхранено в дънната платка, така че не се прилага каквато и да е компенсация от часовата зона. Linux, от друга страна, ще интерпретира времето на дънната платка като UTC (известен още като Greenwich Mean Time) и ще приложи офсетов часови пояс, за да покаже местното време.
И двете системи работят перфектно добре независимо. Проблемът възниква, когато стартирате двуядрена система, като използвате Windows и Linux на една и съща дънна платка. Когато операционните системи са принудени да споделят магазин за време, часовниците няма да се синхронизират.
Има два различни начина, по които можем да решим този проблем: можем да променим начина, по който Linux интерпретира съхраненото време или прави същото в Windows.
Вариант 1: Направете Linux да използва местното време
Най-надеждният начин Linux и Windows да се споразумеят за времето е да променят методологията за поддържане на времето в Linux. Въпреки че това не е изрично поддържано, това е малко по-надеждно, отколкото да се прави същото в Windows. Тя работи на всеки вкус на Linux, използвайки systemd
, който включва Ubuntu, Fedora, Red Hat, Debian и Mint. Смяната на времето за Windows обикновено работи добре, но понякога може да доведе до нестабилност в софтуера на трета страна, който очаква съхраненото време да бъде местно време.
1. Отворете терминала и изпълнете следната команда:
timedatectl set-local-rtc 1 - настройка на системния часовник
Това ще каже на системата да интерпретира съхраненото време на дънната ви платка като местно време. Linux вече няма да прилага корекции на часовите зони на времето, съхранено на дънната платка. В резултат на това вашите часовници ще се синхронизират.
Ако някога трябва да обърнете командата, променете 1 на 0:
timedatectl set-local-rtc 0 - настройка на системния часовник
Опция 2: Използване на Windows UTC
Можете също така да промените начина, по който Windows разглежда системното време. Това ощипване ще накара Windows да интерпретира времето, съхранено на дънната платка като UTC, което тогава Linux може да интерпретира като точната часова зона. Въпреки че това обикновено работи добре, някои приложения разчитат на времето на дънната платка да бъде местно време. В резултат на това понякога се появяват трудни за проследяване грешки. Това прави тази опция малко по-малко желана от първата.
1. Деактивирайте "Автоматично задаване на време" в "Час и език" в приложението Настройки. Това ще попречи на Windows да върне промените, които ще направим.
2. Отворете редактора на системния регистър, като въведете regedit
в менюто "Старт".
3. Намерете следния ключ на системния регистър в левия панел на редактора на системния регистър. За да стигнете бързо, поставете местоположението в адресната лента на редактора на системния регистър:
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ TimeZoneInformation
4. Кликнете с десния бутон на мишката върху бутона "TimeZoneInformation" в левия прозорец и изберете "New -> DWORD (32-bit) Value" от контекстното меню.
5. Напишете новата си стойност "RealTimeIsUniversal".
6. Кликнете два пъти върху стойността, която току-що създадохте, задайте стойността му на "1" и кликнете върху "OK".
заключение
Най-безопасният начин да синхронизирате системните си часовници на система с двойно зареждане е да настроите начина, по който Linux интерпретира времето. Ако това не работи за вас (или ако използвате MacOS вместо Linux), можете също да редактирате системния регистър на Windows, за да промените начина, по който Windows разбира времето на дънната платка.