CentOS虚拟机与本机同步时间

  接着之前的任务,还是为了在VMWare上搭建分布式hadoop集群。搭着搭着注意到虚拟机上的时间和本机是不同步的,而且可以说是乱七八糟,3台虚拟机时间都与本机差了8个小时以上。首先确认不是时区的问题,然后就要想办法让虚拟机时间同步真实时间。

  思路一:使用时间同步服务,让虚拟机自行同步时间。这个方法没尝试就直接放弃,万一本机无法联网,那岂不是坏菜。而且这种同步不知道多久同步一次,能不能设置同步周期?有兴趣的同学可以尝试用这种方法解决。

  思路二:让虚拟机和本机进行时间同步。

  让虚拟机和本机同步时间需要在虚拟机上安装vmtools,并且修改虚拟机配置文件XXX.vmx中的tools.syncTime = "FALSE" 为 "TRUE"。

  顺带提一下,在纯命令行下安装vmtools和在图形界面下安装过程差不多。

    0. 前提软件:perl,ifconfig,gcc, kernel头文件。这四个必须有,否则安装会失败。

      vmtools本身是用perl写的,所以需要主机上有perl。

      ifconfig gcc kernel头文件都是vmtools安装过程中需要使用的,如果没有,安装会失败。

      一般这些软件都是很多linux系统预装的,但是我的虚拟机时最小化安装的,所以这些都没有,perl、ifconfig、gcc这三个好说,正常安装就可以了。kernel头文件是什么具体我也不清楚,大概是/usr/src/kernels/3.10.0-327.10.1.el7.x86_64/include/linux/version.h这个文件,3.10.0-327.10.1.el7.x86_64是系统内核版本号,可以通过"uname -r"查询。网上有些资料说这个kernel头文件因为系统版本的改变位置变化过,可能你的系统有这个头文件,但是位置不是vmtools知道的位置,比如我的vmtools可能就是去上面的路径找,这个视系统和vmtools版本不同可能比较麻烦。不管怎么样就是你要先确定自己系统上有这么个文件,并且让vmtools能找到它。如果vmtools找不到这个头文件,在安装过程中会有提示。如果你的系统没有kernel头文件,你需要安装kernel-devel-3.10.0-327.10.1.el7.x86_64,kernel-devel后面跟的是系统内核版本。版本安装错了也会失败。如果安装过kernel-devel后还找不到头文件,就执行"ln -s /usr/src/kernels/3.10.0-327.10.1.el7.x86_64/include/generated/uapi/linux/version.h /usr/src/kernels/3.10.0-327.10.1.el7.x86_64/include/linux/version.h",将头文件连接到vmtools能找到的地方。

    1. 设置虚拟机,让cdrom连接vmware自带的linux.iso。也可以通过"虚拟机"->"安装VMTools",自动将cdrom连接到linux.iso。

    2. 图形界面下一班会自动挂载cdrom,命令行下需要手动挂载: mount /dev/cdrom /mnt。将cdrom挂载到/mnt目录下,这个目录不影响,随意指定。

    3. 进入cdrom挂载目录,将里面的VMwareTools拷贝出来,我的是VMwareTools-10.0.5-3228253.tar.gz,然后解压。cdrom一般是只读的,所以解压前要拷贝出来。

    4. 进入解压目录,调用 vmware-install.pl。然后按照提示一步一步执行就行了。

  安装完后需要重启虚拟机,有时候可能重启以此还不够(实践中发现的)。这个自动同步好像不是全自动的,如果虚拟机时间和你的主机的时间差很多的话,好像不会自动同步,具体原因本人也不清楚,所以需要手动用"date -s '2016-04-22 12:00:00'"这样设置一下。基本上重启之后时间就会自动同步了。

  

原文地址:https://www.cnblogs.com/hujichen/p/5419218.html