• VMware Workstation 10+Centos7(64位)共享文件夹


    这一两天一直在研究VMware Workstation自带的共享文件夹的功能,期间出了不少问题,在公司搭建的是vm10.0+centos07,在家搭建的是VM 7+centos07...

    公司环境搭建:

    共享访问方式:

    1.VM10挂载的操作系统和主机系统当做一个局域网,可以通过浏览网络来进行访问,当然这种方式没有用VM10自带的共享文件夹访问舒畅

    2.用VM10的共享功能,

    一、vm10.0+centos07

    首先,在VM10中选择安装

    这样会在centos中安装一个cdrom,具体的路径为:/run/media/root/VMware Tools,上面有个VMwareTools-9.6.2-1688356.tar.gz的文件包。,

    我们可以先用tar命令进行归档

    第一步:cp  :/run/media/root/VMware Tools/VMwareTools-9.6.2-1688356.tar.gz  /tmp,把这个文件拷贝到tmp下

    第二步:cd  /tmp进入临时目录,ls 查看刚才的文件是否在这个目录下
    第三步:tar  zxvf  VMwareTools-5.5.0-18463.tar.gz 解压这个文件
    第四步:cd  vmware-tools-distrib进行vmware-tools-distrib目录
    第五步:./vmware-install.pl 执行这个文件,出现提示就回车
    在第五步安装过程中出现几个错误:
    一直回车,出现如下错误信息

    Searching for GCC...

    The path "" is not valid path to the gcc binary.

    Would you like to change it? [yes]

    提示GCC未安装.按ctrl+z退出。安装GCC

    yum install gcc gcc-c++ automake make(将编译环境一次装好)

    GCC安装完成后,重新第五步安装。出现如下错误信息:

    Searching for a valid kernel header path...

    The path "" is not valid.

    Would you like to change it? [yes]

    提示找不到kernel header,在这个错误中,花费了不少时间。主要原因是版本的不一致性,刚开始我根据网上的操作

    yum install kernel-devel 安装了kernel-devel(devel是开发的英文前缀),后重复第五步,还是不行。。,后面经过多次找资料才发现版本不统一。

    先查找centos的kernel版本:uname -r 版本号为3.10.0-123.el7.x86_64

    但我通过命令行查找安装的kernel-devel 和kernel-headers如下

    kernel-devel: 命令:rpm -qa|grep kernel-devel 输出:kernel-devel-3.10.0-123.13.2.el7.x86_64

    kernel-headers:命令:rpm -qa|grep kernel-headers 输出:kernel-headers-3.10.0-123.13.2.el7.x86_64

    具体版本和centos内核的版本有一些出入,如果主版本是相同的,但还是找不到kernel-header.于是我打算安装和kernel相同的版本

    yum install kernel-devel-3.10.0-123.el7.x86_64 安装完成后继续第五步,可能找到了,具体提示如下:

    path to the kernel headers of the running kernel.

    Would you like to change it? [no]

    直接回车。一路向下。。。期间我一直敲回车,结果报错了也不在意。导致没有成功实现共享。

    其实在安装完成后,无论成功失败可以通过vmware-config-tools.pl进行查看。我再一次查看,看到了如下信息:

    /tmp/modconfig-ygOywn/vmhgfs-only/inode.c: 在函数‘HgfsPermission’中: /tmp/modconfig-ygOywn/vmhgfs-only/./shared/compat_dcache.h:57:38: 错误:‘struct dentry’没有名为‘d_count’的成员 #define compat_d_count(dentry) dentry->d_count ^ /tmp/modconfig-ygOywn/vmhgfs-only/inode.c:1904:23: 附注:in expansion of macro compat_d_count’ int dcount = compat_d_count(dentry);

    居然编译的时候报错了:只能修改源码compat_dcacche中的.h文件

    [root@localhost ~]# cd /tmp/vmware-tools-distrib/lib/modules/source/

    [root@localhost source]# ls

    legacy vmblock.tar vmhgfs.tar vmsync.tar vmxnet.tar pvscsi.tar vmci.tar vmmemctl.tar vmxnet3.tar vsock.tar

    [root@localhost source]# tar -xf vmhgfs.tar   --解压vmhgfs.tar,里面有个vmhgfs-only文件夹

    [root@localhost source]# ls

    legacy vmblock.tar vmhgfs-only vmmemctl.tar vmxnet3.tar vsock.tar pvscsi.tar vmci.tar vmhgfs.tar vmsync.tar vmxnet.tar

    [root@localhost source]# cd vmhgfs-only/--进入解压后目录

    [root@localhost vmhgfs-only]# ls backdoor.c dir.c hgfsTransport.h request.h ........................................

    [root@localhost vmhgfs-only]# cd shared/

    [root@localhost shared]# vim compat_dcache.h--打开头文件

    #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)
    #define compat_d_count(dentry) d_count(dentry)
    #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
    #define compat_d_count(dentry) dentry->d_count
    #else
    #define compat_d_count(dentry) atomic_read(&dentry->d_count);
    #endif

    这里报错了,不知道为什么这样,将#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)下面的#define改成

    #define compat_d_count(dentry) d_count(dentry),就可以了

    改完源码后,重新归档:

    回到source文件夹

    [root@localhost source]# tar -cf vmhgfs.tar vmhgfs-only/

    [root@localhost source]# ls

    legacy vmblock.tar vmhgfs-only vmmemctl.tar vmxnet3.tar vsock.tar pvscsi.tar vmci.tar vmhgfs.tar vmsync.tar vmxnet.tar [root@localhost source]# rm -rf vmhgfs-only/

    [root@localhost source]# ll

    总用量 8456

    drwxr-xr-x. 1 root root 162 3月 22 2014 legacy

    -rw-r--r--. 1 root root 1392640 10月 10 23:02 vmhgfs.tar .........................

    [root@localhost source] cd  /tmp/vmware-tools-distrib

     [root@localhost vmware-tools-distrib]# ./vmware-install.p

    重新安装。这下成功了。。。

    然后我们设置vmware的共享文件夹:

    虚拟机设置->选项,如下:

    添加共享文件夹,后。重启centos

    后,我们就能在/mnt/hgfs/下看到共享的文件了

    [root@localhost source]# ll /mnt/hgfs/
    总用量 0
    drwxrwxrwx. 1 root root 0 1月 19 10:24 sharefile

    二.VM 7+centos07..

    在公司安装成功后,回家安装,直接安装kernel-devel-3.10.0-123.el7.x86_64,安装成功后,按理说和内核版本已经是一致了

    但还是会报

    Searching for a valid kernel header path...

    The path "" is not valid.

    Would you like to change it? [yes]

    ,后面我直接安装了最新的kernel-devel

    yum install kernel-devel .后这个问题才解决

    不清楚为什么内核版本一致了还需要安装最新版本。就是centos需要两个版本

    kernel-devel-3.10.0-123.el7.x86_64和kernel-devel-3.10.0-123.13.2.el7.x86_64

    这个问题解决后,一路向上却报了很多源码错误,后面听说网上说VM7不支持一些新的内核。才没向下研究了。。。。

     VM10下载地址:http://pan.baidu.com/s/1hqf7etu

     centos7下载地址:http://pan.baidu.com/s/1nQMGe

     
  • 相关阅读:
    Redis与Memcached的incr/decr差异对比
    Linux sudo用法与配置
    Docker 常用命令
    Linux之间配置SSH互信(SSH免密码登录)
    SVN服务器搭建
    shell中参数的传递
    【代码更新】IIC协议建模——读写EEPROM
    串口完整项目之串口收发字符串
    串口发送模块——1字节数据发送
    状态机设计——从简单的按键消抖开始
  • 原文地址:https://www.cnblogs.com/fujinliang/p/4233353.html
Copyright © 2020-2023  润新知