在VMware虚拟机时钟不准,造成开发中很多问题,例如Makefile 文件会造成一些不必要的重复编译,甚至有些程序拒绝编译。我尝试运行 ntpd 来同步时钟,但是每每由于误差太大,造成拒绝同步。当然,也可使用ntpdate 来定时访问外部服务器来同步,但是总感觉别扭。有没有更好的办法呢?
于是在 google 搜索了半天,也看了 VMware 的帮助文档,得知要解决VMware虚拟机时钟问题需要安装VMware-tools,安装的步骤如下:
解决VMware虚拟机时钟问题一、安装 VMware-tools
1. 在 VMware 窗口菜单中 VM -> setting ,选择 CD-ROM image iso 指向:
C:\Program Files\VMware\VMware Workstation\linux.iso
2. 在 linux 终端中,执行以下命令:
[root]#cd /media
[root]# mount /dev/cdrom /media/
[root]#ls
[root]#rpm -ivh VMwareTools-5.5.3-34685.i386.rpm
我一般喜欢使用 rpm 安装,优点是卸载程序很方便。也容易查看安装的详细内容。 然后运行 /usr/bin/vmware-config-tools.pl,注意该命令不能在远程终端中运行。
接下来该运行 vmware-toolbox 进行配置了。但是该程序需要 xwin 环境,所以暂时还不能运行。
解决VMware虚拟机时钟问题二、在 Windows XP中安装 Xming xserver for windows
这一步很多朋友关心的问题,与大家一样,因为 linux 运行在 server 方式下,一般没有安装 xwindows组件,解决的办法是在自己的工作机上安装 xserver。 Xming 是一个开源的xserver,简单易用,下载的地址是:
http://sourceforge.net/projects/xming
如果仅仅是需要远程运行 vmware-toolbox 这类的简单程序,只需要下载安装 Xming-6-9-0-21-setup.exe 即可,其他的 fonts 和 client 都没有必要。 Xming 的安装很简单,初次运行的时候注意使用 XLaunch 配置 xserver 的参数,特别注意要勾选 No Access Control ,否则远程客户无法连接 xserver。
解决VMware虚拟机时钟问题三、运行 VMware-ToolBox
在 linux 终端中设置 export DISPLAY=192.168.1.100:0 ,这里的 192.168.1.100 是我的 xserver 地址,也就是我的 windowsxp 工作机地址。
[root]#export DISPLAY=192.168.1.100:0
[root]#vmware-toolbox &
ok. 如果顺利的话,vmware-toolbox 的窗口就弹出在工作机上,是不是很爽,^_^
注意勾选 option 中 Time synchrononiation between the virtual machine and the host operating system. 即可。
解决VMware虚拟机时钟问题四、设置 grub 启动参数
在grub 启动配置的kernel 那行结束,加上 clock=pit , 例子如下:
[pre]
[root@mail grub]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/sda1
# initrd /boot/initrd-version.img
#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/boot/grub/splash.xpm.gzhiddenmenutitle
CentOS_ServerCD (2.6.9-42.EL)
root (hd0,0) kernel /boot/vmlinuz-2.6.9-42.EL ro
root=LABEL=/ clock=pit initrd /boot/initrd-2.6.9-42.EL.img
[/pre]
如果guest OS不能安装vmware tools, 或者vmware guest OS是SuSE SLES9表现时间过快,用 clock=pmtmr 代替。如果虚拟的是单cpu guest OS, 把nosmp noapic nolapic 这三个参数加到grub的kernel参数最后, 例子如下:
[pre]
title CentOS_ServerCD (2.6.9-42.EL)root (hd0,0)
kernel /boot/vmlinuz-2.6.9-42.EL ro root=LABEL=/ clock=pit nosmp noapic nolapic
initrd /boot/initrd-2.6.9-42.EL.img
[/pre]
========================================================
停用UTC方法:
装Linux时默认勾选了使用UTC时间,装好系统过发现时间相差了几个小时!!
vi /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=true
ARC=false
将 UTC=true 改为 false,然后重启。
========================================================
网络校对时间:
#通过网络校对时间,“0.fedora.pool.ntp.org”为fedora的时间服务器
#其他时间服务器还有:
#“1.fedora.pool.ntp.org”
#“2.fedora.pool.ntp.org”
ntpdate 0.fedora.pool.ntp.org