EN FR

Why Your PC Loses Time

The 6 most common causes of clock drift — and how to fix each one

The 6 Most Common Causes

1. Dead CMOS Battery

The small coin battery (CR2032) on your motherboard keeps the clock running when the PC is off. After 3–5 years, it dies.

Very Common

2. NTP Service Stopped

Windows Time service or Linux NTP daemon may have been disabled, preventing automatic sync.

Very Common

3. Firewall Blocking UDP 123

Corporate firewalls or security software may block the NTP port, silently preventing sync.

Common

4. Dual-Boot UTC Conflict

Windows uses local time for the hardware clock; Linux uses UTC. Switching between them causes a timezone-sized offset.

Common (dual-boot)

5. VM Timer Issues

Virtual machines miss timer interrupts when their CPU is paused or throttled, causing the guest clock to fall behind.

Common (VMs)

6. Quartz Crystal Aging

Your motherboard's quartz oscillator naturally drifts over time. Temperature changes and aging make this worse.

Normal behavior

Fix on Windows 10 / 11

Step 1: Enable automatic time sync

Open Settings > Time & Language > Date & Time and enable:

  • Set time automatically — ON
  • Set time zone automatically — ON

Click Sync now.

Step 2: Verify the Time service is running

# Open elevated Command Prompt (Run as Administrator)
net start w32time

# Force resync
w32tm /resync /force

# Check current status
w32tm /query /status

Step 3: Change NTP server (optional)

# Point to a more reliable server
w32tm /config /manualpeerlist:"pool-ntp.rdem-systems.com" /syncfromflags:manual /update

# Restart the service
net stop w32time && net start w32time

Fix on macOS

Via System Settings

Go to System Settings > General > Date & Time and enable "Set date and time automatically". The default server is time.apple.com.

Via Terminal

# Check current NTP status
sudo sntp time.apple.com

# Force sync
sudo sntp -sS time.apple.com

Fix on Linux

Check current sync status

# systemd-timesyncd (Ubuntu/Debian default)
timedatectl status

# Chrony
chronyc tracking

# ntpd
ntpq -p

Enable NTP sync

# Enable automatic time sync
sudo timedatectl set-ntp true

# Or install chrony (recommended)
sudo apt install chrony
sudo systemctl enable --now chronyd

Configure a reliable NTP server

# Edit /etc/chrony/chrony.conf
server ntp-pool.rdem-systems.com iburst
server pool.ntp.org iburst

# Restart
sudo systemctl restart chronyd

Dual-Boot Time Issues (Windows + Linux)

This is one of the most common time problems. Windows stores local time in the hardware clock (RTC), while Linux stores UTC. When you switch between them, the displayed time jumps by your timezone offset.

Option A: Tell Linux to use local time

sudo timedatectl set-local-rtc 1

Option B: Tell Windows to use UTC (recommended)

# Run in an elevated Command Prompt
reg add "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f

Restart Windows after making this change.

Virtual Machine Clock Drift

VMs are notorious for losing time. The guest OS expects exclusive access to hardware timers, but the hypervisor shares the CPU among multiple VMs.

Why it happens

  • CPU contention — When the VM is paused to run other VMs, the guest misses timer interrupts
  • Live migration — Moving a VM between hosts causes a brief time gap
  • Snapshot/restore — Restoring a snapshot brings back old time

How to fix it

  • Install guest tools — VMware Tools, QEMU Guest Agent, Hyper-V Integration Services
  • Enable NTP inside the VM — Use chrony with server ntp-pool.rdem-systems.com iburst
  • Use makestep — Allow large time corrections: makestep 1.0 3 in chrony.conf

Frequently Asked Questions

Why does my computer lose time when turned off?

Your motherboard has a small coin battery (CR2032) called the CMOS battery that keeps the clock running when the computer is off. If this battery is dead or weak, the clock resets. Replacing it (about $3) fixes the problem instantly.

Why is my Windows clock wrong after dual-booting Linux?

Windows stores local time in the hardware clock (RTC), while Linux stores UTC. The fix is to tell Windows to use UTC via a registry key, or tell Linux to use local time with timedatectl set-local-rtc 1.

How do I fix clock drift on Windows 10/11?

Open Settings > Time & Language > Date & Time, enable "Set time automatically", then click "Sync now". If that doesn't work, run w32tm /resync /force in an elevated command prompt.

Why does my virtual machine lose time?

VMs share CPU with the host and other VMs. When paused, the guest OS misses timer interrupts. Install guest tools and enable NTP inside the VM with a reliable server.

Is Your Clock Fixed?

Test your system's NTP synchronization right now against a Stratum 1 GNSS reference.

Test My NTP Sync How NTP Works

A service by RDEM Systems · See also: NTP diagnostics