一、安装内核 kernel-devel 包

yum install gcc --nogpgcheck

yum install kernel-devel-$(uname -r) --nogpgcheck

注意,如果自己修改过内核版本,需要确保 uname -r 显示的版本和实际使用的内核版本一致。

二、安装 vmware-tools

在vmware上点击菜单:虚拟机->安装 wmware-tools。

或者直接通过虚拟光驱添加linux.iso镜像文件:选择CD/DVD(IDE)->使用ISO映像文件,选择VMware安装目录下的linux.iso文件,点击确定。

然后在centos里执行:

mkdir /mnt/vmware-tools /tmp/vmware-tools

mount /dev/cdrom /mnt/vmware-tools

复制到可写目录:cp -r /mnt/vmware-tools/* /tmp/vmware-tools/

进入 /tmp/vmware-tools/,解压 VMwareTools-xxx.tar.gz

然后进入解压后的目录,执行:perl vmware-install.pl

然后看提示一路yes。

插曲:

内核 3.10.0-957.el7 编译报错:CONFIG_RETPOLINE=y, but not supported by the compiler

解决办法是注释掉内核源码文件 arch/x86/Makefile 的第164、166行:

160 # Avoid indirect branches in kernel to deal with Spectre
161 ifdef CONFIG_RETPOLINE
162     RETPOLINE_CFLAGS += $(call cc-option,-mindirect-branch=thunk-extern -mindirect-branch-register)
163     ifneq ($(RETPOLINE_CFLAGS),)
164 #注释掉#        KBUILD_CFLAGS += $(RETPOLINE_CFLAGS) -DRETPOLINE
165     else
166 #注释掉#        $(error CONFIG_RETPOLINE=y, but not supported by the compiler. Compiler update recommended.)
167     endif
168 endif

新版系统可能提示:

[root@localhost vmware-tools-distrib]# perl vmware-install.pl
open-vm-tools packages are available from the OS vendor and VMware recommends
using open-vm-tools packages. See http://kb.vmware.com/kb/2073803 for more
information.
Do you still want to proceed with this installation? [no] ^C[root@localhost vmware-tools-distrib]#
[root@localhost vmware-tools-distrib]#

也就是系统已经提供了现成的安装包,此时可以直接安装此包即可:

yum install open-vm-tools

三、设置共享文件夹

右键虚拟机->虚拟机设置->选项->共享文件夹->添加共享文件夹

四、查看共享文件夹情况

打开CentOS终端,输入命令 vmware-hgfsclient,查看共享文件夹情况

[root@localhost tmp]# vmware-hgfsclient
mywinshare

五、创建挂载目录

在 /mnt 下创建一个目录,用于挂载共享文件夹

    # 创建hgfs目录
    mkdir /mnt/mylinuxshare
    # 查看目录的创建情况
    ls -l /mnt

六、挂载共享目录

需要注意centos版本,内核版本4.0之前和之后使用的命令不同。

以 centos7.6 为例,内核版本为 3.10:

mount -t vmhgfs .host:/mywinshare /mnt/mylinuxshare

如果内核版本是4.0及以后可以执行:

vmhgfs-fuse .host:/mywinshare /mnt/mylinuxshare -o subtype=vmhgfs-fuse,allow_other

七、卸载共享目录

如果后续不想使用共享文件,可以通过如下命令卸载共享目录

umount /mnt/mylinuxshare

八、自动挂载共享目录

手动挂载共享目录存在一个弊端,就是每次重启都要重新挂载一次,因此建议设置自动挂载,让虚拟机系统每次启动完成,自动挂载虚拟机已经设置的共享目录。

(1)修改 /etc/fstab 文件:

对于 kernel 4.0 之前的版本:
.host:/mywinshare /mnt/mylinuxshare vmhgfs defaults 0 0

貌似旧版内核下共享文件夹会自动mount到 /mnt/hgfs 目录下,所以也不需要增加 fstab 项。

对于 kernel 4.0 及之后的版本:

.host:/mywinshare /mnt/mylinuxshare fuse.vmhgfs-fuse allow_other,defaults 0 0

(2)设置指令立即生效

完成(1)的操作后,输入如下命令,使其立即生效。

mount -a

(3)测试自动挂载

重启CentOS,查看挂载目录,测试自动挂载是否生效。

九、通过脚本自动挂载

创建脚本文件然后source到初始化文件里,或者直接写代码到初始化文件里:

if [ ! -d /opt/gopath/pkg ]; then
        #共享目录名:gopath,挂载到/opt/gopath
        vmhgfs-fuse .host:/gopath /opt/gopath -o subtype=vmhgfs-fuse,allow_other
fi

--end--

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐