UM messing with BIOS clock? Windows doesn't display proper time

I used Linux Mint. Then switched to Ubuntu MATE because Systemback doesn’t create live CDs in Linux Mint.

I tried both 14.04 and 16.04. I decided to stick with 14.04 because AMD proprietary driver and I have Emerald themes working in 14.04 and at the moment I am not sure if I can get those working in 16.04.

I dual-boot with Windows and have done so forever. Now Ubuntu MATE 14.04 is giving me a problem. UM 14.04 displays time correctly and I have set time synchronization to “Manual”.

The problem shows up in Windows. Since I installed UM 14.04 (not very long ago), Windows time is messed up. When I boot into Windows I get actual time plus two hours. If I fix time in Windows everything is OK. But if I then boot into UM 14.04 and then back into Windows - time is messed up again.

I believe UM 14.04 is messing with my BIOS clock. It shouldn’t because time synchronization is set to “Manual”.

Does anyone know how to fix this?

I have UM 14.04 set up with Compiz, Emerald and spinning Cube and I am really happy with my “geek desktop”. But this time problem is bugging me. I need to dual-boot with Windows for various reasons, but now dual-booting is frustrating because of this issue. I can dual-boot with any other distro without time problem in Windows.

This time bug (I believe it’s a bug in UM 14.04) might have been introduced because of Raspberry Pi fixes that were ported to x86. I remember a thread in this forum about Pi owners that complained about lacking hardware clock and thus having to wait for time synchronization. A UM dev was going to look into this and maybe code was introduced that synced time at start-up. Just a guess.

Linux distributions in general store the BIOS time in UTC. Windows instead saves the time based on what time it is itself. Neither of them would live in harmony.

There's a registry entry you can add to tell Windows to use UTC:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
DWORD (32-bit) RealTimeIsUniversal = 1

Thanks for your reply. But I am not happy with your solution. I have dual-booted Windows and Linux for 8 years. I have never had this problem before.

There must be a simple way to make UM stop modifying BIOS clock?

In that case, do this the other way round.

From here:
https://help.ubuntu.com/community/UbuntuTime#Make_Linux_use_.27Local.27_time


  • Edit this file:

      sudo nano /etc/default/rcS
    
  • Add “UTC=no

  • I don’t see this line on 16.04, so I’m not sure if it still works.


Apparently, the NTP service that syncs the time with the Internet triggers this change, so you could disable that service:

update-rc.d ntp disable

Thanks for your help.

"UTC=no" is default on 14.04 so I couldn't change that. I tried different tweaks. Then I checked another machine running Windows+Ubuntu MATE 14.04. There was no problem on that machine.

The good news is: I don't think there's a time bug in Ubuntu MATE. I think the time problem in Windows is due to lack of updates (I have disabled Windows Update).

I will investigate and see if I can solve it by updating Windows. Since this problem is likely not related to UM I will mark this thread as solved.

1 Like

Hello there @mrtribute I have the same problem when switching to windows on my dual boot setup. Has been like that for a while for me (when I started using Ubuntu-MATE 15.10). I never bothered to find a solution / thought I was the only one it happened to ^_ ^"

I switched Ubuntu MATE 16.04 to using local time instead of UTC with sudo timedatectl set-local-rtc true - no more conflicts with Windows.

2 Likes

The problem is that windows thinks that the BIOS is in local time and Linux systems default to the BIOS clock to UTC. You need to tell one to use the other system. To tell Windows that the BIOS is in UTC you can easily edit the registry.

create a text file called UTC.reg with the following:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001

or manually open the registry editor and create the new key

  • Start the Registry Editor (regedit)
  • Traverse the following path, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
  • Create a dword named RealTimeIsUniversal and set the value to 1
  • Restart your computer

After that everything should be copacetic

Of course you could always tell Linux to obey Windows wishes with

sudo timedatectl set-local-rtc 1
2 Likes

I can confirm that my time issues stems from Windows 7.

I have three Linux distros installed: Ubuntu MATE 14.04, Linux Mint 17.3 and an old version of Bodhi Linux. They all are set to local time (UTC=no). Therefore they will set BIOS clock to local time.

Now; and this is interesting and hard to explain: My Windows 7 installation sets BIOS clock to UTC. I haven’t modified Windows so I don’t understand why Windows sets BIOS to UTC, but it does. I have confirmed this by rebooting, setting BIOS clock and booting into Windows. I have done this several times. Windows sets my BIOS clock to UTC every time. So “my problem” is related to Windows.

I can solve this by setting Linux to also use UTC. But nevertheless strange that Windows sets BIOS to UTC.

@ramblinman41 As a Windows user I find your information helpful. Thanks.