VMWare 和 centos 共享

为了更好的解决虚拟机与主机的共享问题,VMware公司有一个VMWare-tools,来实现文件共享。这里主要讲的是在Windows下用 Vmware虚拟Linux来与windows来共享。 

  1、安装客户机系统,linux这里选用CentOS5 

  2、启动虚拟机中的Linux后,(注意必须是启动虚拟机后)。选择菜单里的VM选项,里面有一个子项是Install VMware Tools,选定它。开始安装。 

  3、现在,你到VM菜单里的Removable Devices子项中的CDROM项,点击edit,打开VMWare的安装文件夹,里面是不是有一些*.iso啊,好的,按照前面的步骤,选择linux.iso来作为ISO文件。 

  4、下面就是mount加载linux.iso文件。 

  mount /dev/cdrom /mnt/cdrom 

  cd /mnt/cdrom 

  5、到cdrom文件夹里面解压VMware-tools*.tar.gz 

  cp VMware-tools*.tar.gz /tmp 

  cd /tmp 

  tar xzvf VMware-tools*.tar.gz 

  cd vmware-tools-distrib 

  在文件夹里面是不是看到了一个vmware-install.pl 

  OK! 

  ./vmware-install.pl 

  一直按回车,直到提示安装成功就可以了。 

  6、VMware-tools已经安装成功了,是不是很简单啊 

  cd /mnt 

  是不是看到了一个hgfs文件夹,这就表明安装成功了,下面就要讲一下怎么来设置共享了,这一部分更简单。 

  记得上面在VM菜单里进行操作了吗?对!下面接着要在VM菜单里进行,选择setting子项,再选择Options。在窗体的左半部分是不是看到了Shared Folders这么一项,如果你以前没有设置过,应该是Disabled。 

  选择Enabled until next power off or suspend,选择Add,选择要与客户Linux进行共享的文件夹。 

  现在已经完成了所有的工作了,在/mnt/hgfs下你会看到添加的文件夹。在windows下向指定的share folders写文件,在Linux客户机里面就能够看到,同样在Linux上写文件在Windows下也能够看到,并且可以修改。 

  卸载光驱 

  umount /mnt/cdrom


由于测试需要,安装第二个虚拟机,本着尝鲜测试的心理,选择了centos7,但是在安装vmware共享文件夹的时候出现了问题,查询了很多资料后,找到下边一个解决办法,分享出来。

首先得解决包依赖问题,常识,否则安装不上去,有几个是必须的,然后再进行一下更新操作,保证内核是最新版本就OK。

yum -y install net-tools perl gcc gcc-c++ kernel-devel
yum update

  一切都准备就绪,看起来如此美好,但结果是忧伤的,一不小心报了一个致命错误,并且解释的很清楚,看起来必须得解决,否者将不能使用vmhgfs,也就是共享文件夹就废了,而我现在需要的就是这个。

/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);

  解决的办法只有一个,修改源码,听起来很简单的,确实。

[root@localhost ~]# cd 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
[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

  我也不知道这么一大段有几个人能明白,简单点说就是找到vmhgfs.tar源文件,然后解压,再编辑源文件compat_dcache.h,找到第57行可以看到如下信息。

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)
#define compat_d_count(dentry) d_count(dentry)
/* 本因使用该宏定义,但不知何种原因判断无效,当前内核版本为3.10.0-123.8.1 */
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
#define compat_d_count(dentry) dentry->d_count
/* 当前使用的是这个宏定义,但实际上应该是使用上面的,*/
/*这个原因我实在不清楚,不过只要修改dentry->d_count为d_count(dentry)然后:wq!强制保存就可以了 */
#else
#define compat_d_count(dentry) atomic_read(&dentry->d_count);
#endif

  最后重新打包,然后再次运行就OK,过程如下。

[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 modules]# cd ../../../
[root@localhost vmware-tools-distrib]# ./vmware-install.pl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值