Fix Windows og Linux Viser forskjellige tidspunkter når du starter Dual
Hvis systemet ditt støtter både Windows og Linux, kan du merke at det er umulig å få systemklokkene til å synkronisere. Uansett hvordan du endrer klokken i ett OS, løser det ikke problemet med det andre operativsystemet. Dette skyldes uenighet om tidsbehandlingsmetodikk mellom Windows og Unix-baserte operativsystemer. Heldigvis er det en relativt enkel løsning for det.
Hvorfor skjer dette?
Datamaskinen lagrer gjeldende tid i en klokke på hovedkortet ditt. Dette gjør det mulig for datamaskinen å holde oversikt over tid selv når den er slått av. For å ta hensyn til tidssoner, bruker forskjellige operativsystemer forskjellige metoder. Windows forutsetter at lokal tid er lagret i hovedkortet, slik at det ikke gjelder noen form for tidszoneforskyvning. Linux, derimot, vil tolke tiden på hovedkortet som UTC (aka Greenwich Mean Time) og bruke en tidszoneforskyvning for å vise lokal tid.
Begge disse systemene virker helt fine selvstendig. Problemet oppstår når du dobler opp et system som kjører Windows og Linux av samme hovedkort. Når operativsystemene er tvunget til å dele en tidsbutikk, vil klokkene ikke synkroniseres.
Det er to forskjellige måter vi kan fikse dette problemet på: Vi kan endre hvordan Linux tolker den lagrede tiden eller gjør det samme for Windows.
Alternativ 1: Gjør Linux bruk lokal tid
Den mest pålitelige måten å gjøre Linux og Windows enige om på tiden, er å endre Linuxs tidsbehandlingsmetodikk. Selv om dette ikke er eksplisitt støttet, er det litt mer pålitelig enn å gjøre det samme i Windows. Det fungerer på alle smaker av Linux ved hjelp av systemd
, som inkluderer Ubuntu, Fedora, Red Hat, Debian og Mint. Endring av Windows-tid fungerer vanligvis også bra, men det kan noen ganger føre til ustabilitet i tredjeparts programvare som forventer at lagret tid blir lokal tid.
1. Åpne Terminal og kjør følgende kommando:
timedatectl set-local-rtc 1 --justering av system-klokken
Dette vil fortelle systemet å tolke hovedkortets lagrede tid som lokal tid. Linux vil ikke lenger bruke tidssonejusteringer til tiden som er lagret på hovedkortet. Som et resultat vil klokkene dine synkronisere.
Hvis du trenger å reversere kommandoen, endrer du 1 til 0:
timedatectl set-local-rtc 0 --justering av system-klokken
Alternativ 2: Gjør Windows bruk UTC
Du kan også endre måten Windows ser på systemtiden. Denne tweak vil føre til at Windows tolker tiden som er lagret på hovedkortet som UTC, hvilket Linux kan tolke som riktig tidssone. Selv om dette generelt fungerer bra, er enkelte programmer avhengig av at hovedkortet er lokal tid. Som et resultat kan det være vanskelig å spore bugs. Det gjør dette alternativet litt mindre ønskelig enn det første.
1. Deaktiver "Angi tid automatisk" under "Tid og språk" i innstillingsprogrammet. Dette forhindrer Windows i å tilbakestille endringene vi skal gjøre.
2. Åpne Registerredigering ved å skrive regedit
i Start-menyen.
3. Finn følgende registernøkkel i venstre rute i registerredigering. For å komme dit raskt, lim inn plasseringen i registerredigeringens adressefelt:
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ TimeZoneInformation
4. Høyreklikk på "TimeZoneInformation" -tasten i venstre rute og velg "Ny -> DWORD (32-biters) verdi" fra hurtigmenyen.
5. Oppgi din nye verdi "RealTimeIsUniversal."
6. Dobbeltklikk på verdien du nettopp har opprettet, sett verdien til "1, " og klikk "OK".
Konklusjon
Den sikreste måten å synkronisere systemklokker på et dual-boot system er å justere hvordan Linux tolker tiden. Hvis det ikke fungerer for deg (eller hvis du bruker macOS i stedet for Linux), kan du også redigere Windows-registeret for å endre måten Windows forstår på hovedkortet.