====== How to Fix Drifting Clock in VMWare (Linux Host, Windows Guest) ======
Brendan Kidwell\\
brendan@glump.net
28 December 2007
I have a Windows virtual machine on my office computer running in VMWare Server. The real computer runs Ubuntu Linux. I've had a nagging problem with the clock in the virtual machine. It always registers the correct time when I boot up the virtual machine, but then it invariably drifts---sometimes hours in single work day. I can't remember whether it drifts ahead or back or in both directions.
===== 1. Ensure that you have VMWare Tools installed in the Windows Guest =====
If you don't have VMWare Tools running, all bets are off.
===== 2. Disable Windows Time Service =====
I tried was disabling the service called "Windows Time" found Control Panel -> Administrative Tools -> Services. I don't remember where I picked up this hint [citation needed]. So far this change has failed to fix my problem on its own.
===== 3. Tell VMWare Server your Host's maximum CPU frequency =====
References:\\
http://blog.autoedification.com/2006/11/vmware-guest-clock-runs-fast.html \\
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1591
View ''/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq'' on the host. You will find a single line giving the maximum speed in kilohertz. Call that MAXKHZ. Now add these lines to ''/etc/vmware/config'' on the host, substituting your actual value for MAXKHZ:
host.cpukHz = MAXKHZ
host.noTSC = TRUE
ptsc.noTSC = TRUE
Then shutdown any virtual machines and restart VMWare Server with this command:
sudo /etc/init.d/vmware restart
----
\\
I presume that step 2, and of course step 1, are required for step 3 have the correct effect. As of 28 December, have implemented step 3 right now, and I'll see how it works after a few days.