Time changes and linux
If you are in North America, then you went through a time change yesterday — from Daylight Savings Time back to Standard Time. And perhaps it caused you problems with your dual-boot computer.
If you are an opensuse fan, you will be thinking of installing opensuse 13.2 over the next few days.
Why not take the opportunity to deal with both problems at the same time.
My recommendation is to use UTC (Universal Coordinated Time, sometimes known as Greenwich Mean Time) in your BIOS clock settings.
Traditionally, many Windows users have set their hardware clock to local time. That is the Windows default. And it was almost a requirement of Windows. However, recent Windows versions handle UTC pretty well, so it might be time for a change.
If you are still running Windows XP or an older version, you might prefer to stay with setting the BIOS clock to local time. However, Windows Vista, Windows 7, Windows 8 and 8.1 all do pretty well with the BIOS clock set to UTC.
I set my BIOS clock to UTC back in 2007, with a new computer running Windows Vista. That has worked well. I also tried that with Windows XP, but it did not work as well with XP.
The advantages of UTC
The main advantage of using UTC is that everything works smoothly. Your computer changes time when it should, based on timezone definitions. But it is the displayed time that changes. The BIOS clock always stays at UTC, and time changes are reflected in the algorithm to computer local display time from the UTC value in the system clock.
When you use local time, in a dual boot arrangement, one or both operating systems may get the time wrong. If linux is running at the moment of time change, it will probably change the clock for you. But then when you boot Windows, it will change it again leaving you one hour off.
How to change Windows
My recommendation is to follow a three step procedure in an account with Administrator privileges (a member of the Administrator group).
Right click on the clock in your tray, and select settings. Then select “change timezone”. Select the timezone for UTC (or GMT or Universal Coordinated Time). Save that change. Perhaps also unselect the option for automatic daylight savings time.
Your clock will now show the GMT time, and your BIOS clock will have been set to UTC.
Use the “regedit” command to create a new registry entry. If you have never done this, it is a good time to learn.
Create a new registry key, with name
To do this, navigate with “regedit” to the indicated place (ending in “TimeZoneInformation” in the above key). Then create a new key “RealTimeIsUniversal” at that location. Make that key a “dword”, and give it a value of 1 (or 0001).
Save the changes. Then reboot to be sure that Windows is using the new registry value.
Go into the clock settings again, and change the time setting back to your local time zone. Set the option to automatically change to Daylight Savings if that is appropriate for your zone.
This should restore the correct local time display to the clock that you will see in the Windows tray. But, this time, the BIOS clock will remain at UTC.
The best time to make this change is during an install. So make the Windows change when you are ready for a new linux install, then set the timezone in the installer. In the opensuse installer timezone settings, there is a box that says that the BIOS clock is set to UTC. Simply check that box during install.
To change an existing sytem, it should be sufficient to remove the file “/etc/adjtime”. Best would be to boot from live media, mount the root file system, and remove that file (or rename it to “adjtime.old” if you are squeamish about removing files). That way, the change will be already in effect for your next system boot.
I last posted on this topic around 3 years ago.