Dual Boot Time Mismatch
A common issue in Linux + Windows dual-boot systems is that the clock appears correct in one OS and wrong in the other. The usual symptom is an offset of several hours after rebooting between systems. This is not a hardware clock failure—it is typically caused by different assumptions about how the Real-Time Clock (RTC) is stored.
Use this guide if:
- Time is correct in Parrot OS but wrong in Windows
- Time is correct in Windows but wrong in Parrot OS
- Clock shifts after every reboot into the other OS
- Timezone is correct, but displayed time is offset
- NTP works temporarily, then breaks after switching OS
Why It Happens
Section titled “Why It Happens”Your motherboard clock (RTC) stores a base time. Operating systems may interpret that clock differently:
- Linux commonly expects RTC in UTC
- Windows commonly expects RTC in local time
If one OS writes RTC using one model and the other reads using another, the displayed time becomes offset.
This is a standard mismatch, not a timezone bug.
1. Check Current Time Sync State in Parrot
Section titled “1. Check Current Time Sync State in Parrot”Inspect system clock, RTC, timezone, and sync status:
timedatectlImportant fields:
Local timeUniversal timeRTC timeTime zoneSystem clock synchronizedRTC in local TZ
This command usually reveals the exact configuration mismatch, e.g.:
Local time: Mon 2026-04-27 11:18:28 UTCUniversal time: Mon 2026-04-27 11:18:28 UTCRTC time: Mon 2026-04-27 13:18:28Time zone: Etc/UTC (UTC, +0000)System clock synchronized: noNTP service: activeRTC in local TZ: no2. Recommended Fix: Keep RTC in UTC
Section titled “2. Recommended Fix: Keep RTC in UTC”Using UTC for RTC is cleaner and aligns with Linux defaults. Configure Windows to understand UTC instead of local time.
On Windows
Section titled “On Windows”Run Command Prompt as Administrator:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /fThen fully reboot Windows.
On Parrot
Section titled “On Parrot”Ensure it is using UTC behavior:
timedatectl set-local-rtc 0Re-check:
timedatectlExpected:
RTC in local TZ: no
3. Alternative Fix: Force Linux to Use Local Time
Section titled “3. Alternative Fix: Force Linux to Use Local Time”Use this only if Windows-side changes are not possible.
sudo timedatectl set-local-rtc 1 --adjust-system-clockThen verify:
timedatectlExpected:
RTC in local TZ: yes
This works, but UTC is generally preferable.
4. Ensure NTP Is Enabled
Section titled “4. Ensure NTP Is Enabled”Even after RTC alignment, network time sync should remain active.
timedatectl set-ntp truetimedatectlIf synchronization is disabled, the clock may drift over time.
5. Correct Timezone Explicitly
Section titled “5. Correct Timezone Explicitly”If the offset is caused by wrong timezone rather than RTC interpretation:
List zones:
timedatectl list-timezonesSet timezone (example Sri Lanka):
sudo timedatectl set-timezone Asia/ColomboThen verify again:
timedatectl6. Fast Startup in Windows
Section titled “6. Fast Startup in Windows”Windows Fast Startup can preserve stale clock state across shutdowns.
Recommended:
- Disable Fast Startup in Windows power settings.
- Perform a full shutdown/reboot after changing clock settings.
This prevents partial hibernation behavior from reintroducing mismatches.
7. If Time Keeps Resetting in Both OSes
Section titled “7. If Time Keeps Resetting in Both OSes”If both systems lose time entirely (not just offset), check hardware causes:
- Weak CMOS battery
- Firmware reset
- Motherboard RTC issues
That is separate from dual-boot UTC/local conflicts.
8. Validate the Fix
Section titled “8. Validate the Fix”After configuration:
- Boot Parrot → verify time
- Reboot to Windows → verify time
- Reboot back to Parrot → verify again
If correct in all transitions, the RTC model is aligned.
Common Mistakes
Section titled “Common Mistakes”- Changing timezone instead of RTC mode
- Disabling NTP and assuming the problem is fixed
- Using local RTC without understanding DST effects
- Testing without a full reboot
- Ignoring Windows Fast Startup