linux vmware 共享文件夹共享,解决vmware上使用linux虚拟,无法共享文件的问题
前段时间,一个朋友在windows 使用 linux 虚拟,因为要共享windows 上的文件夹给linux 虚拟机。
而这个功能vmware 自己带了,只需要添加就行,不需要做什么客户的设置,图片如下:
按正常的情况来讲,只要安装了vmtools 之后,这里添加了共享,在虚拟机的 /mnt/hgfs 目录,就可以看到我们添加的共享文件夹的,可是这次,我的朋友并不是这么幸运,添加了文件夹,只是有 /mnt/hgfs 这个目录,目录下并没有任何文件。
后来经过了解情况,由于没有安装 vmtools,所以看不到,这个功能,是由vmtools 来控制的,安装了vmtools 之后,还是一样,再后来,我远程过去操作,再次安装,依然无效。
后来经过排查,安装了vmtools 以后会添加一个名为 vmhgfs 的 kernel module,经过查看,这个并没有对应模块
[root@localhost ~]# lsmod | grep vm
vmw_vsock_vmci_transport 30577 0
vsock 34855 5 vmw_vsock_vmci_transport
vmw_balloon 18190 0
vmw_vmci 67106 1 vmw_vsock_vmci_transport
vmwgfx 235043 2
drm_kms_helper 146456 1 vmwgfx
ttm 93908 1 vmwgfx
drm 372540 5 ttm,drm_kms_helper,vmwgfx
[root@localhost ~]#
图片如下:
怀疑是不是安装 vmtools 的,没有启用这个模块,于是,从新安装一遍,并且查看每一步确认的提示,避免提示的直接确认而忽略了这个模块的安装。
在安装过程中,还遇到如下的错误提示:
The path "" appears is not a valid path to the 3.10.0-514.6.1.el7.x86_64 kernel headers.
这个是由于系统没有安装 kernel header 文件,而导致找不到,如果遇到这个错误,安装 kernel 对应版本的 header 文件,即可,命令如下:
yum -y install kernel-devel-$(uname -r) # Redhat \ CentOS
apt-get -y install linux-headers-$(uname -r) # Debian \ Ubuntu
##其它发行版本,请调整相应命令
安装完成后,重新运行 vmtools 的安装脚本 vmware-install.pl 即可,安装后这一步缺少 header 文件的提示就变成如下这样
The path "/lib/modules/3.10.0-514.6.1.el7.x86_64/build/include" appears to be a valid path to the 3.10.0-514.6.1.el7.x86_64 kernel headers.
注意这里显示了路径,并且是 appears ,不是之前的 is not a valid
还有一点需要注意的是,在安装 vmtools 的时候,需要有 perl 语言环境支持,并且还要有 gcc 编译器,还需要系统对应的 kernel header 文件。perl 一般的linux系统都自带了,而 gcc 和 kernel 头文件,则不一定有,安装如下
yum -y install gcc kernel-devel-$(uname -r)
apt-get -y install gcc linux-headers-$(uname -r)
##其它发行版本,请调整相应安装命令
在解决的了头文件的问题之后,原本以为应该可以解决了,所以再次运行安装,在安装的时候,gcc 编译器报一个错误,还是和 vmhgfs.ko 相关的,既然是 .ko 文件,这个是内核模块的文件啊,我想,估计这次安装完了也不行,内核模板编译出错,忽略了这个错误,继续安装下去,结果和我猜想的一样 lsmod 命令依然看不到模板,/mnt/hgfs 目录也没有文件
gcc 编译器报错如下:
In file included from include/linux/mmzone.h:9:0,
from include/linux/gfp.h:5,
from include/linux/mm.h:9,
from include/linux/pagemap.h:7,
from /tmp/modconfig-EgxhOq/vmhgfs-only/page.c:28:
include/linux/wait.h:1044:1: note: expected ‘unsigned int’ but argument is of type ‘int (*)(void *)’
wait_on_bit(void *word, int bit, unsigned mode)
^
/tmp/modconfig-EgxhOq/vmhgfs-only/page.c:1649:23: error: too many arguments to function ‘wait_on_bit’
TASK_UNINTERRUPTIBLE);
^
In file included from include/linux/mmzone.h:9:0,
from include/linux/gfp.h:5,
from include/linux/mm.h:9,
from include/linux/pagemap.h:7,
from /tmp/modconfig-EgxhOq/vmhgfs-only/page.c:28:
include/linux/wait.h:1044:1: note: declared here
wait_on_bit(void *word, int bit, unsigned mode)
^
make[2]: *** [/tmp/modconfig-EgxhOq/vmhgfs-only/page.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [_module_/tmp/modconfig-EgxhOq/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.10.0-514.6.1.el7.x86_64'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/modconfig-EgxhOq/vmhgfs-only'
后来在网上查到资料,说是因为 centos 7 的 内核使用3.10的版本,在函数 wait_on_bit_io() 中有三个参数,而vmtools 的代码在3.19后才用3个参数的 wait_on_bit_io() 函数,代码如下:
int
HgfsWbRequestWait(HgfsWbPage *req) // IN: request of page data to write
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
return wait_on_bit_io(&req->wb_flags,
PG_BUSY,
TASK_UNINTERRUPTIBLE);
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
return wait_on_bit(&req->wb_flags,
PG_BUSY,
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
HgfsWbRequestWaitUninterruptible,
#endif
TASK_UNINTERRUPTIBLE);
#else
wait_event(req->wb_queue,
!test_bit(PG_BUSY, &req->wb_flags));
return 0;
#endif
}
现在,我们只需要修改一下这个函数。
在vmtools 解压出来的目录里面,进入 lib/modules/source 目录,在这个目录里,可以看到有好几个以.tar结尾的文件,其中 vmhgfs.tar ,把这个包解压出来,使用如下命令
tar -xf vmhgfs.tar
这个包解压后,会有一个 vmhgfs-only 的文件夹
修改这个 vmhgfs-only 文件夹的下的 page.c 文件,在 1639 行,使用vim或者任何你喜欢的编辑器,修改如下:
原文件
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
修改后的文件
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
修改后保存,回到 lib/modules/source 目录,删除原本的 vmhgfs.tar 文件,再重新打包
rm -f vmhgfs.tar
tar -cf vmhgfs.tar vmhgfs-only
最后再回到vmtools 安装目录,重新执行 ./vmware-install.pl 安装,即可解决
安装完成后,可以使用 lsmod | grep vm 看到,vmhgfs 这个模板已经存在并加载了,现在,共享文件夹就可以使用了
linux vmware 共享文件夹共享,解决vmware上使用linux虚拟,无法共享文件的问题相关推荐
- win10无法访问smb共享文件夹的解决办法
win10无法访问smb共享文件夹的解决办法 之前在linux的几个图形化界面都可以在文件夹中输入: smb://ip/share 直接访问Linux服务器上的共享文件夹 但是在win10上进行同样的 ...
- VMware Workstation Player 找不到共享文件夹的解决方法
具体问题:使用VMware Workstation Player装完linux系统后,开启共享文件夹,在linux系统中没有显示(即:无法使用共享文件夹) 解决方法:重新安装VMware Tool ...
- 通过共享文件夹实现虚拟机VMware与宿主机文件共享
通过共享文件夹实现虚拟机VMware与宿主机文件共享 说明: 虚拟机系统:Ubuntu 16.04 宿主机系统:Windows 10 通过共享文件夹实现虚拟机VMware与宿主机文件共享 第1步:宿主 ...
- Linux系统centos7+VMwareWorkstation创建共享文件夹错误解决方法集锦
Linux系统centos7+VMwareWorkstation创建共享文件夹错误解决方法集锦 参考文章: (1)Linux系统centos7+VMwareWorkstation创建共享文件夹错误解决 ...
- Oracle怎样创建共享文件夹,Oracle vm要如何使用共享文件夹的解决方法
了解过的Oracle vm虚拟机的人,用过的朋友都知道,这是一个很方便的虚拟机,当然唯一不足的是它不支持直接的主机到虚拟机的文件拖拽,但是有其他的方式可以解决这个问题.下面是学习啦小编为大家整理的关于 ...
- linux下共享文件夹(windows可访问,linux也可访问)
2019独角兽企业重金招聘Python工程师标准>>> 本文是转字网上的两段,如果是菜鸟,想懂有点难度,我这里给点注释 在linux上共享文件夹windows下看 ********* ...
- linux删除文件夹下所有文件_linux下共享文件夹(windows可访问,linux也可访问)...
本文是转字网上的两段,如果是菜鸟,想懂有点难度,我这里给点注释 在linux上共享文件夹windows下看 ******************************************* 首先 ...
- debian9为什么默认是pip2_VirtualBox内刚刚安装完Debian9系统,也无法设置共享文件夹。解决的方法就是安装VirtualBox客户端增强包。...
VirtualBox内刚刚安装完Debian9系统,也无法设置共享文件夹.解决的方法就是安装VirtualBox客户端增强包. 1.若直接安装客户端增强包会得到如下提示: root@debian:/o ...
- 开启共享文件夹/共享打印机功能
适用于:Windows 10 神州网信政府版 概要: 基于GB/T 30278-2013 <信息安全技术政务计算机终端核心配置规范>的要求对Windows 10神州网信政府版(以下简称CM ...
最新文章
- linux磁盘满时,如何定位并删除文件
- access数据库文件导入mysql数据库文件怎么打开,Access数据库从外部数据导入文本文件和VF数据库-dbf文件怎么打开...
- android studio 调用c++,android studio配置opencv,调用c++,处理图像
- STM32H743+CubeMX-解决FDCAN控制器无法接收远程帧
- go 设置进程名_七天用Go写个docker(第六天)
- C#.NET验证码智能识别学习笔记---06 解决java jre问题:JTessBoxEditor.jar打开的时报找不到或无法加载主类 com.sun.tools.javac.Main错误
- R语言中怎么将一个字符串向量合成一个大字符串
- 自学python买什么教材-从自学到编写大学python教材——低调quot;虫师”谢乾坤
- 白猫使用OCR文字识别
- 中国数据中心最新规划图,中国数据中心建设情况
- 远程过程调用失败 异常来自 HRESULT:0x800706BE
- AI科普文章 | 语音识别准不准?—— ASR 效果评测原理与实践
- 网易换肤第二篇:本地换肤实现!
- matlab计算矩阵的相关系数矩阵,计算二维矩阵的相关系数
- English Learning - Day20 作业打卡 2022.12.26 周一
- 怎么文字扫描识别?看完这篇你就会了
- [Excel启用编辑]的影响与关闭
- 综合布线6A系统产品集锦(二)
- Linux proxy 设置
- 大数据ssm项目案例总结