Computer geeft verkeerde tijd aan bij dualboot (Linux/Windows)

Noud van Kruysbergen
0

Inhoudsopgave

Bij een dualboot-systeem gaat de klok soms zomaar een uur of twee vooruit en weer achteruit omdat de besturingssystemen de realtime-klok van de hardware anders interpreteren. Een ingreep vanaf de commandline of in het register van Windows kan hier een einde aan maken. Het probleem dat de computer de verkeerde tijd aangeeft bij dualboot kun je zo verhelpen.

Het uitlezen en weergeven van de huidige tijd van de realtime-klok van de pc klinkt triviaal. Toch gaat juist daar steeds iets mis wanneer een Linux-distributie en Windows parallel op de pc geïnstalleerd zijn. Soms loopt Linux een uur of twee voor, terwijl Windows even ver achterblijft.

Dat is niet alleen een cosmetisch probleem voor de tijdweergave van het besturingssysteem, maar soms leidt het ook tot vreemde bijverschijnselen. Bestanden kunnen bijvoorbeeld een wijzigingsdatum in de toekomst hebben, wat sommige toepassingen, vooral programmeertools, laat ontsporen. Ook kunnen certificaatcontroles mislukken door een verkeerde tijd, waardoor het moeilijker wordt om een systeem bij te werken of bij een domein in te loggen. Met een paar eenvoudige stappen in Linux of Windows kun je die en andere valkuilen makkelijk vermijden.

Windows vs Linux

De oorzaak van die verkeerde tijd is een andere interpretatie van de realtime-klok op het moederbord, de Real-Time Clock (RTC), die je ook in de BIOS-set-up kunt zien en instellen. Windows gaat er namelijk vanuit dat dit de lokale tijd is, terwijl Linux daarentegen standaard aanneemt, net als andere Unix-besturingssystemen, dat de realtime-klok de centrale wereldtijd gebruikt. Die tijdstandaard wordt ook Coordinated Universal Time genoemd en is vooral bekend onder de afkorting UTC. De lokale tijd berekent Linux altijd ad hoc op basis van de UTC. Daarvoor gebruikt het de tijdzone die je tijdens het installeren hebt ingesteld en bestanden die informatie over alle tijdzones bevatten, inclusief het begin en einde van de zomertijd.

B360 moederbord review vergelijkende test Intel

Linux en Windows hanteren een andere interpretatie van de realtime-klok op het moederbord.

De lokale tijd ligt bij ons altijd één of twee uur voor op de UTC, al naargelang het winter- of zomertijd is. Dat brengt ons bij het probleem. Als je Windows parallel op een Linux-systeem installeert, loopt de klok in eerste instantie een uur of twee achter. Dat is niet vreemd, want Windows gaat er na het opstarten vanuit dat de realtime-klok de lokale tijd bevat.

Op een bepaald moment zal Windows echter contact maken met tijdservers op internet en vervolgens de lokale tijd in de realtime-klok zetten. Start je dan een Linux-­distributie, dan geeft die een tijd aan die twee uur in de toekomst ligt, omdat Linux er nog steeds vanuit gaat dat de realtime-klok de UTC bevat. Vroeg of laat zal de distributie de tijd echter synchroniseren via internet en de realtime-klok een of twee uur terugdraaien.

Verkeerde tijd verhelpen met Linux

Voor moderne Linux-distributies die opstarten met systemd, kun je dit gewipwap eenvoudig voorkomen met het volgende commando:

sudo timedatectl set-local-rtc 1

De Linux-installatie gaat er dan, net als Windows, vanuit dat de realtime-klok de lokale tijd bevat, waardoor het probleem opgelost is. Ook met distributies zonder systemd kun je een dergelijke instelling maken. Dat gaat bij elke distributiefamilie echter weer even anders. Hoe dat moet staat in de bijbehorende documentatie.

computer verkeerde tijd realtime klok controleren Linux timedatectl

In dit Linux-systeem wordt de wereldtijd opgeslagen in de realtime-klok van de pc in plaats van de lokale tijd, waardoor Windows weer in de war kan raken.

Met een beetje geluk heeft je Linux-distributie dat al ingesteld, omdat sommige installers dat auto­matisch doen als ze een geïnstalleerde Windows aantreffen. In de praktijk werkt dat niet altijd betrouwbaar. Natuurlijk werkt het zeker niet als je eerst Linux en daarna Windows installeert.

Het programma timedatectl laat op de regel ‘RTC in local TZ’ zien of de Linux-installatie al ­ver­onderstelt dat de realtime-klok de lokale tijd bevat. Met het oog op een probleemdiagnose geeft de tool ook UTC, ­lokale tijd en realtime-klok afzonderlijk weer.

De documentatie, die je kunt oproepen met man timedatectl, bevat echter een waarschuwing. Als je de lokale tijd in de realtime-klok opslaat, krijg je geen ondersteuning van de ontwikkelaars en kun je op problemen stuiten, bijvoorbeeld bij het wisselen van tijdzone of bij het overschakelen naar zomer- of wintertijd. Daarom kun je volgens sommige distributeurs beter Windows aanpassen dan Linux.

computer verkeerde tijd Linux waarschuwing lokale klok

De ontwikkelaars waarschuwen: dat Windows de lokale tijd in de realtime-klok opslaat, kan problemen veroorzaken onder Linux.

Tijd-probleem verhelpen met Windows

Net zoals je Linux het Windows-gedrag kunt aanleren, zo kun je ook Windows overhalen om de Linux-aanpak over te nemen. In alle moderne versies van Windows kun je dat bereiken door onder de sleutel HKLM\System\CurrentControlSet\Control\TimeZone­Information in het register een DWORD te maken met de naam RealTimeIsUniversal en die de waarde 1 te geven.

computer verkeerde tijd Windows klok aanpassen register

Door een registersleutel te maken, kan Windows de realtime-klok op dezelfde manier behandelen als Linux.

Met die truc laat Windows zich sinds XP ervan overtuigen om UTC te gebruiken voor de realtime-klok. Bij oudere versies van Windows leidde die instelling echter tot problemen die alleen in zeer specifieke situaties voorkwamen en moeilijk te diagnosticeren waren. Dat is niet zo verwonderlijk, omdat maar heel weinig gebruikers die registersleutels instellen, zodat problemen die daar het gevolg van zijn slechts moeizaam gevonden en gecorrigeerd werden.

De hierboven beschreven aanpak voor Linux is echter veel beter getest door de eerder genoemde automatische instelling. Daarom raden wij ook aan: leer liever Linux het gedrag van Windows aan dan omgekeerd. Zoals zo vaak in het leven, geldt die aanbeveling niet in het algemeen. Als je Windows maar zelden gebruikt, kun je beter de registertruc gebruiken, want blijkbaar heeft Microsoft alle belangrijke problemen inmiddels gevonden en gecorrigeerd.

Linux beter dan Windows?

De vraag blijft staan: welke van deze twee benaderingen is correct? Voor de meeste pc’s is het lood om oud ijzer – de meeste werken immers maar met één besturingssysteem. Dat is de enige met invloed over het interpreteren van de realtime-klok, dus het maakt niet uit of zich daar de UTC of de lokale tijd bevindt.

De situatie is heel anders bij pc’s met verschillende besturingssystemen, want daar kunnen problemen ontstaan als de realtime-klok de lokale tijd bevat. Bij het overschakelen naar zomer- of wintertijd moet het besturingssysteem de realtime-klok een uur vooruit of terug zetten – direct tijdens het omschakelen of bij de eerste keer opstarten daarna. Als je meer besturingssystemen parallel installeert, doen die dat allemaal, omdat besturingssystemen zonder controle bij een tijdserver vaak niet weten of een ander systeem de klok al heeft aangepast. Het resultaat zijn meerdere aanpassingen, waardoor de klok verkeerd loopt tot de volgende synchronisatie met internet. Dat kan niet alleen gebeuren bij de parallelle installatie van Linux en Windows, maar ook bij het gebruik van twee parallel geïnstalleerde Windows-versies. De Unix-manier om UTC als systeemtijd te gebruiken, voorkomt dat en is uiteindelijk beter.

(Thorsten Leemhuis en Noud van Kruysbergen, c’t magazine)

Uitgebreide achtergrondinfo lees je op je gemak in c't 05/2024

Meer over

Software

Deel dit artikel

Noud van Kruysbergen
Noud van KruysbergenNoud heeft de 'American Dream' doorlopen van jongste bediende tot hoofdredacteur van c't, waar hij zo veel mogelijk de diepgang, betrouwbaarheid en diversiteit wil bewaken.

Lees ook

Verschil Windows 10 en 11: dit moet je weten over de twee versies

Wat is het verschil tussen Windows 10 en Windows 11? In dit artikel geven we je een overzicht van enkele functionele verschillen tussen de menu's, hoe...

Chat GPT gebruiken: dit kun je allemaal doen met de chatbot van OpenAI

OpenAI heeft de ChatGPT-bot ontwikkeld als een taalmodel dat is getraind op een enorme hoeveelheid tekst op het internet. Je kunt ChatGPT gebruiken om...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er