解决VMware下面时钟过慢或过快的问题

在VMware虚拟机中 , 因为时间与实时钟不同步 , 造成开发中很多问题 , 例如 Makefile 文件会造成一些不必要的重复编译 , 甚至有些程序拒绝编译 。我尝试运行 ntpd 来同步时钟 , 但是每每由于误差太大 , 造成拒绝同步 。当然 , 也可使用 ntpdate 来定时访问外部服务器来同步 , 但是总感觉别扭 。有没有更好的办法呢?

于是在 google 搜索了半天 , 也看了 VMware 的帮助文档 , 得知需要安装 VMware-tools , 安装的步骤如下:

一、安装 VMware-tools

1. 在 VMware 窗口菜单中 VM -> setting , 选择 CD-ROM image iso 指向:
C:/Program Files/VMware/VMware Workstation/linux.iso
2. 在 linux 终端中 , 执行以下命令:


[pre][root]#cd /media
[root]#mount cdrommount: block device /dev/hdc is write-protected, mounting read-only
[root]#cd cdrom
[root]#ls
[root]#rpm -ivh VMwareTools-5.5.1-19175.i386.rpm
[/pre]

我一般喜欢使用 rpm 安装 , 优点是卸载程序很方便 。也容易查看安装的详细内容 。然后运行 /usr/bin/vmware-config-tools.pl , 注意该命令不能在远程终端中运行 。

接下来该运行 vmware-toolbox 进行配置了 。但是该程序需要 xwin 环境 , 所以暂时还不能运行 。

二、在 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-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. 即可 。

四、设置 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=pitinitrd /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]

出处:http://linux.ccidnet.com/art/3067/20070403/1051889_1.html

    推荐阅读