最近在学习Docker,在用VMware的过程中,无法将虚拟机内的内容粘贴出来,然后想到安装VMware Tools工具,但是灰色的,随后重新配置了一遍CD/DVD才可以安装。
然后又在设置共享文件夹时发现VMware的共享文件夹也找不到,然后通过网上教程学习才鼓捣清楚,现将问题复现一遍。
再多说一下,之所以复现是因为问题没有找到一个教程就整明白,得结合多个网上教程才行,所以还是做了一个自己的总结教程篇。
一、配置环境
- VMware Funsion:Player版本13.5.0
- Linux版本CentOS Linux release 7.9.2009 (Core)
- 宿主机:MacOS 12.7.3
二、VMware Tools安装
在安装的VMware中,安装VMware Tools存在灰色无法安装的情况。
该问题需要在VMware-虚拟机- CD/DVD(IDE)-CD/DVD(IDE)设置…
然后把“连接CD/DVD驱动器” 勾选上,配置改为“自动检测”。
这里注意:要把该虚拟机关机后再配置,不然勾选上“连接CD/DVD驱动器”后,弹出无法连接的报错,然后勾选会被取消掉。
安装上面的操作步骤,关闭并勾选“连接CD/DVD驱动器”后,重新打开虚拟机。这时会提示“无法连接虚拟设备ide0:0,因为主机上没有响应的设备”,点击“是”,然后开机。
这次就可以安装VMWare Tools了!
这里还要注意一点,我再写这个教程的时候,发现关机重启后,还是无法点击“安装VMware Tools”,然后我把虚拟机挂起后,重新恢复,然后就可以安装VMware Tools了。
挂起:
恢复:
三、设置共享文件夹
这个问题在于,VMware设置共享文件夹后,Linux仍然无法获取到该文件夹,我的场景就是用Linux下载搜狗输入法,发现太卡,下不了。然后用宿主机下载文件并传到虚拟机上。
首先,需要在上图中点击“共享设置”,然后在共享中勾选“启用共享文件夹”,同时点击“+”号,把要共享的文件夹放进来。
1、检查共享的文件夹是否具有读写的权限,共享的文件是否具有读写的权限,如果没有,请考虑644或777赋权。
2、安装Open VM Tools
首先,确保安装了 Open VM Tools。这是一组由 VMware 提供的开源工具,用于提供虚拟机功能的增强,包括共享文件夹功能。
[root@localhost fangjunyu]# yum install open-vm-tools
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.bupt.edu.cn
* epel: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.bupt.edu.cn
* updates: mirrors.nju.edu.cn
软件包 open-vm-tools-11.0.5-3.el7_9.9.x86_64 已安装并且是最新版本
无须任何处理
3、加载vmhgfs内核模块
1)创建挂载点(如果尚未创建):
[root@localhost mnt]mkdir -p /mnt/hgfs
[root@localhost mnt]# ls /mnt/hgfs/
2)使用`vmhgfs-fuse`来挂载共享文件夹:
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
如果上述命令执行成功,您的共享文件夹应该现在已经挂载到 /mnt/hgfs。您可以通过运行 ls /mnt/hgfs 来查看共享文件夹的内容。
如果您在运行 vmhgfs-fuse 命令时遇到任何错误,请确保您已经在 VMware 设置中配置了共享文件夹,并且虚拟机设置中的共享文件夹功能已启用。
4、确认 vmtoolsd 服务正在运行
此外,如果您是在虚拟机重启后首次尝试挂载共享文件夹,确保 open-vm-tools 服务已启动:
systemctl start vmtoolsd
并检查服务状态以确认其正在运行:
systemctl status vmtoolsd
四、踩坑
1、不要用 modprobe vmhgfs 来手动安装 vmhgfs 内核模块
[root@localhost fangjunyu]# modprobe vmhgfs
modprobe: FATAL: Module vmhgfs not found.
如果 modprobe 无法找到 vmhgfs 模块,这意味着可能需要以不同的方式挂载 VMware 共享文件夹。由于 open-vm-tools 已经安装,但无法使用传统的 vmhgfs 方法,可以尝试使用 vmhgfs-fuse。这是 open-vm-tools 的一部分,它使用 FUSE(用户空间文件系统)技术来挂载共享文件夹,这种方法不需要内核模块。
2、未知的文件系统类型”vmhgfs”
[root@localhost fangjunyu]# mount -t vmhgfs .host:/ /mnt/hgfs
mount: 未知的文件系统类型“vmhgfs”
如果尝试挂载VMware共享文件夹时,遇到这个问题,指出“未知的文件系统类型“vmhgfs””。这通常是由于缺少相应的内核模块或软件包所致。
可尝试创建挂载点并使用`vmhgfs-fuse`来挂载共享文件夹,具体流程请见前面的步骤。
3、mkdir: 无法创建目录”/mnt/hgfs”: 只读文件系统
[root@localhost fangjunyu]# mkdir /mnt/hgfs
mkdir: 无法创建目录"/mnt/hgfs": 只读文件系统
[root@localhost fangjunyu]# sudo mkdir /mnt/hgfs
mkdir: 无法创建目录"/mnt/hgfs": 只读文件系统
这个问题可能是登录账号的权限不够所致,请不要用 sudo 命令创建,而是使用 su 命令,切换到 root 账号,然后进行栏目的创建。
如果问题没有解决,也可能在于跳过前面的安装Open VM Tools和加载vmhgfs内核模块的步骤,直接创建挂载目录导致的,请参考前面的配置进行设置。
以上配置完成后,基本就可以实现共享文件夹的设置,如果仍有问题,请考虑设置配置后重启服务,加以查看。
4、误删共享文件夹后,无法再次显示
这个问题在于,不小心删除共享文件夹,然后 hgfs 文件夹下没有显示共享文件夹。
这个问题的解决方案为:
1)执行下述代码
[root@localhost hgfs]# umount /mnt/hgfs
将挂载的目录卸载掉
2)使用`vmhgfs-fuse`来挂载共享文件夹:
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
3)重启 vmtoolsd 服务
systemctl restart vmtoolsd
4)查看共享目录
如果,你现在在/mnt/hgfs目录下,发现还是没有共享目录,则退回到上级 /mnt 目录上去,再返回到 /hgfs 目录下,就可以看到共享的文件夹。
如果问题仍然没有解决,请考虑重新走一遍配置流程,或者查看共享文件夹下是否含有文件等情况,或使用搜索引擎搜素其他的解决方案。
五、参考资料
1、Why is /mnt/hgfs not appearing?
https://askubuntu.com/questions/74775/why-is-mnt-hgfs-not-appearing
2、VMware设置centos7共享文件夹
https://blog.51cto.com/u_15316082/5268379
主要参考以上参考资料和部分人工智能问答梳理的本次教程,感谢上述参考资料的知识分享。