Skip to main content

Command Palette

Search for a command to run...

Fixing Time Discrepancies in Dual-Boot Systems: Syncing Windows and Pop!_OS Clocks

Updated
2 min read
Fixing Time Discrepancies in Dual-Boot Systems: Syncing Windows and Pop!_OS Clocks
S

I'm a curious Geek with an insatiable thirst to learn new technologies and enjoy the process every day. I aim to deliver high-quality services with the highest standards and cutting-edge DevOps technologies to make people's lives easier.

If you’ve ever experienced incorrect time on your system after switching between Windows and Pop!_OS in a dual-boot setup, you’re not alone. This is a common issue due to how these operating systems handle the system clock, specifically the hardware clock in your BIOS.

The Problem: Time Discrepancies Between Windows and Pop!_OS

When you dual-boot between Windows and Pop!_OS, you might notice that the time is incorrect after switching from one OS to the other. For example, your BIOS clock might display a different time than what you expect, and Windows might show the wrong time after you’ve been using Pop!_OS.

This happens because Windows and Pop!_OS have different assumptions about how the hardware clock should be set:

  • Windows assumes the hardware clock (BIOS clock) is set to local time.

  • Pop!_OS (and most Linux distributions) assumes the hardware clock is set to UTC (Coordinated Universal Time).

Due to this difference, when you switch between the two operating systems, the BIOS clock can get reset, causing the incorrect time to appear in one or both OSes.

The Solution: Syncing the Clock Between Windows and Pop!_OS

To fix this issue, you need to make sure that both operating systems are using the same assumption for the BIOS clock. The easiest solution is to configure Pop!_OS to use local time, just like Windows does. Here’s how:

  1. Open a terminal in Pop!_OS.

  2. Run the following command:

timedatectl set-local-rtc 1 --adjust-system-clock

This command tells Pop!_OS to treat the BIOS clock as local time instead of UTC. The --adjust-system-clock flag ensures that the system clock is immediately adjusted to reflect this change.

Why This Works

By configuring Pop!_OS to use local time, both Windows and Pop!_OS will read and write the same time format to the BIOS clock. This prevents the time discrepancies that occur when switching between the two operating systems.

  • When Pop!_OS boots: It will now treat the BIOS clock as local time, just like Windows, ensuring the correct time is displayed.

  • When Pop!_OS shuts down: It will write the correct local time back to the BIOS clock, so when you boot into Windows, the time remains consistent.

Conclusion

Time discrepancies in dual-boot setups between Windows and Pop!_OS can be frustrating, but they are easily resolved by ensuring both operating systems use the same format for the BIOS clock. By running the timedatectl set-local-rtc 1 --adjust-system-clock command in Pop!_OS, you can ensure that both systems remain in sync, avoiding any incorrect time displays.