Om ditt system dubbla stöder både Windows och Linux kanske du märker att det är omöjligt att få systemklockorna att synkronisera. Oavsett hur du ändrar klockan i ett operativsystem fixar det inte problemet med det andra operativsystemet. Detta beror på en oenighet om tidsbehållande metodik mellan Windows och Unix-baserade operativsystem. Lyckligtvis finns det en relativt lätt lösning för det.

Varför händer detta?

Din dator lagrar den aktuella tiden i klockan på moderkortet. Detta gör att datorn kan hålla koll på tiden även när den stängs av. För att ta hänsyn till tidszoner, använder olika operativsystem olika metoder. Windows förutsätter att lokal tid lagras i moderkortet, så det gäller inte någon form av tidszonförskjutning. Linux, däremot, kommer att tolka tiden på moderkortet som UTC (aka Greenwich Mean Time) och tillämpa en tidszonförskjutning för att visa lokal tid.

Båda dessa system fungerar perfekt självständigt. Problemet uppstår när du startar ett system med dubbla start och kör Windows och Linux av samma moderkort. När operativsystemen tvingas dela en tidsbutik kommer inte klockorna att synkroniseras.

Det finns två olika sätt att lösa detta problem: vi kan ändra hur Linux tolkar den lagrade tiden eller gör detsamma med Windows.

Alternativ 1: Gör Linux med lokal tid

Det mest tillförlitliga sättet att göra Linux och Windows överens om tiden är att ändra Linux: s tidsbehållande metodik. Även om detta inte uttryckligen stöds, är det lite mer tillförlitligt än att göra detsamma i Windows. Det fungerar på alla smaker av Linux med systemd, som inkluderar Ubuntu, Fedora, Red Hat, Debian och Mint. Att ändra Windows-tid fungerar vanligtvis också bra, men det kan ibland leda till instabilitet i program från tredje part som förväntar sig att den lagrade tiden ska vara lokal tid.

1. Öppna Terminal och kör följande kommando:

 timedatectl set-local-rtc 1 --justjust-system-klockan 

Detta kommer att berätta för systemet att tolka ditt moderkorts lagrade tid som lokal tid. Linux kommer inte längre att tillämpa tidszonjusteringar till den tid som lagras på moderkortet. Som ett resultat kommer dina klockor att synkronisera.

Om du någonsin behöver byta kommandot, ändra 1 till 0:

 timedatectl set-local-rtc 0 --just-system-klockan 

Alternativ 2: Gör Windows med UTC

Du kan också ändra hur Windows ser systemtid. Denna tweak kommer att leda till att Windows tolkar tiden som lagras på moderkortet som UTC, vilket Linux då kan tolka som rätt tidszon. Även om detta i allmänhet fungerar bra, är vissa applikationer beroende av att moderkortet är lokal tid. Som ett resultat kan svårljudda buggar ibland visas. Det gör det här alternativet lite mindre önskvärt än det första.

1. Inaktivera "Ange tid automatiskt" under "Tid och språk" i inställningsprogrammet. Detta kommer att förhindra att Windows återställer de förändringar som vi ska göra.

2. Öppna Registry Editor genom att skriva regedit i Start-menyn.

3. Leta reda på följande registernyckel i den vänstra rutan i registret. För att komma dit snabbt, klistra in platsen i registerredigerarens adressfält:

 HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ TimeZoneInformation 

4. Högerklicka på knappen "TimeZoneInformation" i den vänstra rutan och välj "New -> DWORD (32-bitars) värde" från snabbmenyn.

5. Namnge ditt nya värde "RealTimeIsUniversal."

6. Dubbelklicka på det värde du just skapat, sätt dess värde till "1" och klicka på "OK".

Slutsats

Det säkraste sättet att synkronisera systemklockorna på ett system med dubbla uppstart är att justera hur Linux tolkar tiden. Om det inte fungerar för dig (eller om du använder MacOS istället för Linux), kan du också redigera Windows-registret för att ändra hur Windows förstår moderkortstiden.