Quick Links

Sometimes when you set up a dual-boot system, things can get a bit weird with the time and clock settings, so how do you fix the problem? Today's SuperUser Q&A post has the perfect solution to help a frustrated reader fix his dual-boot clock woes.

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

Photo courtesy of Straws pulled at random (Flickr).

The Question

SuperUser reader arielnmz wants to know how to get both of the clocks on his dual-boot Windows/Linux setup to display the proper, and matching, times:

Ever since I started using Linux in a dual-boot set up with Windows, I have noticed when I rebooted the machine, the time on the other operating system was wrong (for example, 12:00 on Linux, reboot to Windows and see 18:00). When I checked the BIOS, the RTC was set to 18:00.

Since my time zone is -06:00 CST, I assume Linux just sets the RTC’s time to UTC and re-calculates the time based on the time zone whereas Windows just sets the RTC to the time for the time zone. Both use the same NTP server to synchronize the time.

My question is, which one is doing the right thing? On which one should I set the time zone setting to UTC in order to have the right time on both?

What is the best method for fixing arielnmz's dual-boot clock problem?

The Answer

SuperUser contributor Ayan Patra has the answer for us:

I recently faced the same problem and this is how I fixed it. You need to make some minor changes in both operating systems.

I started with Linux first. Run the following commands as root:

  • ntpdate pool.ntp.org

This will update your time if it is not set correctly.

Now set the hardware clock to UTC with this command.

  • hwclock --systohc --utc

Source

Now boot to Windows and add the following to the registry. Simply create a .reg file using the code below in Notepad. Save it and run it.

  • Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]"RealTimeIsUniversal"=dword:00000001

Source

From the next boot onward, both operating systems will show you the correct time.


Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.