vmtools安装后不能实现开发主机和Linux虚拟机之间的文件夹共享的问题解决

以前用ubuntu12.04一直没有问题。最近心血来潮将版本更新到最新后发现共享文件夹不能用了。所以就重新安装vmtools。但是在编译vmhgfs时报错。错误如下:

  

In file included from ./arch/x86/include/asm/percpu.h:44:0,
                 from ./arch/x86/include/asm/preempt.h:5,
                 from include/linux/preempt.h:18,
                 from include/linux/spinlock.h:50,
                 from include/linux/mmzone.h:7,
                 from include/linux/gfp.h:5,
                 from include/linux/mm.h:9,
                 from include/linux/pagemap.h:7,
                 from /tmp/modconfig-p8BmWh/vmhgfs-only/inode.c:29:
/tmp/modconfig-p8BmWh/vmhgfs-only/inode.c: In function ‘HgfsPermission’:
include/linux/kernel.h:834:27: error: ‘struct dentry’ has no member named ‘d_alias’
  const typeof( ((type *)0)->member ) *__mptr = (ptr);                            ^
include/linux/list.h:687:40: note: in expansion of macro ‘container_of’
 #define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                        ^
include/linux/list.h:698:15: note: in expansion of macro ‘hlist_entry’
     ____ptr ? hlist_entry(____ptr, type, member) : NULL; 

根据打印信息可以知道是HgfsPermission函数中struct dentry没有成员d_alias。这就奇怪了。上网查了下原因居然是vmware的vmhgfs模块在unbutu最新发行版下存在bug。在安装是需要打补丁或者手动修改一下就可以。下面说明手动修改怎么改。

1.进到vm tools中源码所在的位置

cd vmware-tools-distrib/lib/modules/source

2.解压vmhgfs.tar

sudo tar xf vmhgfs.tar

3.修改文件inode.c

  先查看内核的版本。我这里是3.16.0

uname  -a
Linux ubuntu 3.16.0-38-generic #52-Ubuntu SMP Thu May 7 10:51:21 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

  修改vmhggs.tar解压后的文件inode.c.进入vmhgfs-only文件夹中。用vim或者gedit修改

第1925行

#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
                           d_alias) {
#else
                           d_u.d_alias) {
#endif

第1983行

#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
         struct dentry *dentry = list_entry(pos, struct dentry, d_alias);
#else
         struct dentry *dentry = list_entry(pos, struct dentry, d_u.d_alias);
#endif

3.文件修改完后备份原来的vmhgfs.tar

mv vmhgfs.tar vmhgfs.tar.orig

4.重新打包,用修改后的源码生成新的vmhgfs.tar

tar cf vmhgfs.tar vmhgfs-only

5.按照先前的步骤重新安装即可。

时间: 2024-08-18 19:52:48

vmtools安装后不能实现开发主机和Linux虚拟机之间的文件夹共享的问题解决的相关文章

Windows主机和Linux虚拟机之间传输文件

如果使用VirtualBox的增强功能, 可以实现两者之间文件相互拖拽. 但某些情况下, 比如增强功能安装遇到难以解决的问题, 或者Linux版本为server版本(例如Ubuntu Server发行版), 则使用ftp等方式来传输文件更为便捷. 以下步骤默认当前主机为Windows, 虚拟机为Linux, 两者可以相互ping通. e.g. Windows hostname为win64, Linux的hostname为u14s64: 在Windows端下载psftp, 打开psftp.exe,

[ubuntu] VMware Tools 安装详细过程与使用 ——主机和ubuntu虚拟机之间的文本和文件传递

Ubuntu虚拟机和Windows系统之间传文件,看了很多方法比如share文件夹等等,发现用VMware Tools比较方便,可以直接拖拽 详细的安装教程,看的一位巨佬:https://blog.csdn.net/u013142781/article/details/50539574 原文地址:https://www.cnblogs.com/conver/p/11619287.html

将安卓开发环境里的.android和avd文件夹修改位置

安卓开发环境里的.android和avd文件夹位置默认在C盘 并且随着所建立的avd越多,占用的c盘空间越多,实属苦恼 修改办法: 1. 事先将.android文件夹复制到想放置的目录去 2. 新建环境变量(系统变量): 变量名:ANDROID_SDK_HOME 变量值:.android的新文件夹地址 3. 关闭eclipse 4. 删除原来的.android目录 5. 启动eclipse,从avd manager或者android build设置里就能看到路径已经修改成功了 [tips: ct

使用gridlayout布局后,因某些原因又删除,并整理文件夹结构时,Unable to resolve target &amp;#39;android-7&amp;#39;

出现的问题 [2013-01-11 10:52:39 - gridlayout_v7] Unable to resolve target 'android-7' 事由:在一次做九宫格时.误使用了gridlayout布局.因此eclipse为我自己主动下载了??gridlayout_v7_2 文件,并放到工作空间文件夹. 由于不再须要,也为了文件夹结构的清晰性,须要将其删除.但在关闭(Close Project)这个文件时,eclipse自己主动编译项目出错,提示?Unable to resolv

Windows主机与centOS虚拟机之间&quot;ping不通&quot;

为什么要遇到这个问题 这是我重新安装centOS7.5虚拟机之后遇到的问题——我需要安装一个SecureCRT工具,结果主机与虚拟机没有ping通. 在安装这个工具之前需要进行主机与虚拟机的相互ping通,所以接下来需要一步步完成网络相关的一些配置. 虚拟机ifconfig查看网卡信息 首先 Vmware打开终端输入:ifconfig或者ifconfig ens33,可以看到 inet.netmask.broadcast分别是多少. windows终端ping虚拟机的inet 在windows系

win7主机与linux虚拟机共享方法之右键添加Sharing Options

在win7上建了个linux虚拟机,虚拟机中装好samba. 如果对着文件夹进行右键操作,没发现Sharing Options,再执行下面的安装: sudo apt-get install nautilus-share 重启虚拟机后即可生效.

Ubuntu : 在主机和虚拟机之间传文件

电脑用的是windows的系统,vmware player打开了一台ubuntu虚拟机,想在它们之间传送文件. 在宿主机上安装FTP文件传输软件 步骤如下: 1.Ubuntu中安装ssh,命令:sudo apt-get install ssh openssh-server 2.查看虚拟机中Ubuntu的IP地址,命令:ifconfig 下图就是虚拟机中Ubuntu的IP地址 3.回到宿主机中,百度搜索下载FileZilla,其实这就是一个基于FTP协议.在两台电脑之间进行文件传送的软件(上学期做

Ubuntu安装samba实现文件夹共享

因工作需要,准备在Ubuntu服务器上共享文件夹,从Windows和Mac上都可以访问共享文件. 搜了一下,决定通过samba服务实现.安装过程如下: [step1]安装samba服务 sudo apt-get install samba sudo apt-get install smbfs [step2]创建共享文件夹 sudo mkdir /home/share chmod 777 /home/share chmod 777 /home/share/* [step3]备份并编辑smb.con

(已解决)在linux的虚拟机上安装vmware tools(实现windows与虚拟机之间的文件交互复制粘贴)

Linux下需要安装VMware Tools工具来实现主机和虚拟机直接文件复制粘贴功能,安装方法如下: ①点击虚拟机VM菜单栏--虚拟机--安装VMware Tools. ②然后RedHat系统中弹出的安装包,找到VMwareTools-9.2.3-1031360.tar.gz 然后右键解压到/media目录下. ③进入/media用终端命令进行安装. 1 2 3 4 5 6 7 8 9 10 11 [[email protected] VMware Tools]# cd /media/VMwa