Fix Windows og Linux Viser forskellige tidspunkter, når Dual Booting
Hvis dit system dual støtter både Windows og Linux, kan du bemærke, at det er umuligt at få systemets ure til at synkronisere. Uanset hvordan du ændrer uret i et OS, løser det ikke problemet med det andet operativsystem. Dette skyldes en uenighed om tidsbehandlingsmetoder mellem Windows og Unix-baserede operativsystemer. Heldigvis er der en forholdsvis let løsning til det.
Hvorfor sker dette?
Din computer gemmer den aktuelle tid i et ur på dit bundkort. Dette gør det muligt for computeren at holde styr på tiden, selv når den er slukket. For at tage højde for tidszoner, bruger forskellige operativsystemer forskellige metoder. Windows forudsætter, at den lokale tid er gemt på bundkortet, så det gælder ikke nogen form for tidszoneforskydning. Linux vil på den anden side fortolke tiden på bundkortet som UTC (aka Greenwich Mean Time) og anvende en tidszoneforskydning for at vise lokal tid.
Begge disse systemer virker helt fine selvstændigt. Problemet opstår, når du dobbeltstart et system, der kører Windows og Linux af samme bundkort. Når operativsystemerne er tvunget til at dele en tidsforretning, vil klokkerne ikke synkronisere.
Der er to forskellige måder, vi kan løse dette problem på: Vi kan ændre, hvordan Linux fortolker den lagrede tid eller gør det samme for Windows.
Mulighed 1: Gør Linux brug af lokal tid
Den mest pålidelige måde at få Linux og Windows til at blive enige om på tidspunktet er at ændre Linuxs tidsregistreringsmetode. Selvom dette ikke udtrykkeligt understøttes, er det lidt mere pålideligt end det samme i Windows. Det virker på enhver smag af Linux ved hjælp af systemd
, som omfatter Ubuntu, Fedora, Red Hat, Debian og Mint. Ændring af Windows-tid fungerer typisk også fint, men det kan nogle gange føre til ustabilitet i tredjeparts software, der forventer, at den lagrede tid er lokal tid.
1. Åbn Terminal og kør følgende kommando:
timedatectl set-local-rtc 1 --justeret systemur
Dette vil fortælle systemet at fortolke dit bundkortets lagrede tid som lokal tid. Linux vil ikke længere anvende tidszonejusteringer til den tid, der er gemt på bundkortet. Som følge heraf synkroniseres dine ure.
Hvis du nogensinde har brug for at vende kommandoen, skal du ændre 1 til 0:
timedatectl set-local-rtc 0 --justeret systemur
Mulighed 2: Gør Windows brug af UTC
Du kan også ændre den måde, som Windows får vist system tid. Denne tweak vil medføre, at Windows fortolker den tid, der er gemt på bundkortet som UTC, hvilket Linux kan fortolke som den korrekte tidszone. Selvom dette generelt fungerer godt, er nogle applikationer afhængige af, at bundkortstiden er lokal tid. Som følge heraf kan der opstå svære bugs. Det gør denne mulighed lidt mindre ønskelig end den første.
1. Deaktiver "Indstil tid automatisk" under "Tid og sprog" i programmet Indstillinger. Dette forhindrer Windows i at vende tilbage de ændringer, vi skal lave.
2. Åbn Registreringseditor ved at skrive regedit
i menuen Start.
3. Find følgende registreringsdatabasenøgle i den venstre rude i registreringseditoren. For at komme hurtigt ind, indsæt placeringen i registreringsdatabaseets adresselinje:
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ TimeZoneInformation
4. Højreklik på "TimeZoneInformation" -tasten i venstre rude og vælg "Ny -> DWORD (32-bit) værdi" fra kontekstmenuen.
5. Navngiv din nye værdi "RealTimeIsUniversal."
6. Dobbeltklik på den værdi, du netop har oprettet, angiv dens værdi til "1", og klik på "OK".
Konklusion
Den sikreste måde at synkronisere dit systemur på et dual-boot system er at justere, hvordan Linux fortolker tiden. Hvis det ikke virker for dig (eller hvis du bruger macOS i stedet for Linux), kan du også redigere Windows-registreringsdatabasen for at ændre den måde, Windows forstår bundkort på.