测试环境

宿主机:Windows X64 10.0.19044.1706

虚拟机平台:VMware Workstation Pro 16.2.3 build-19376536

虚拟机:Ubuntu X64 22.04 LTS

问题描述

  1. VMware中设置并已启用共享文件夹;
  2. 在Linux终端执行运行VMware-hgfsclient命令能正常显示出hgfs和共享文件夹名称;
  3. 在Linux终端执行ls命令看不到hgfs目录下的共享文件夹名称,为空白状态;
  4. Linux下手动安装vmware tools无效;
  5. Linux下安装或重新安装open-vm-tools无效;
  6. Linux下执行vmhgfs-fuse .host:/ /mnt/hgfs挂载命令无效;
  7. Linux下修改etc/fstab增加自动挂载脚本无效或出错。

问题分析

  VMware-hgfsclient返回结果正常,说明文件夹已经被设置为共享状态,不能访问的原因可能是挂载有问题。既然Linux下解决不了,就回到Windows中寻找思路。

解决方法

 在宿主机VMware设置中将Linux共享文件夹先禁用,然后再重新启用,发现Linux下共享文件夹显示和使用均恢复正常。 

 操作步骤:

  1. VMware菜单【虚拟机】→【设置】→【选项】→【共享文件夹】,
  2. 选中【已禁用】→【确定】,
  3. 重复1操作,选中【总是启用】→【确定】,
  4. 在Linux中访问共享文件夹恢复正常。

说明:每次启动Linux虚拟机后需要进行上面的操作。

  VMware Workstation提供了命令行虚拟机共享文件夹操作命令:

  启用共享文件夹:

vmrun -T ws enableSharedFolders 虚拟机vmx文件路径

  禁用共享文件夹:

vmrun -T ws disableSharedFolders 虚拟机vmx文件路径

为简化操作,建立Windows命令行bat或cmd脚本如下,保存扩展名为bat或cmd:

@echo off
::img变量为虚拟机VMX文件路径
set img=D:\VMI\Ubuntu\Ubuntu.vmx
::vmrun变量为vmrun.exe程序路径
set vmrun=C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe
"%vmrun%" -T ws disableSharedFolders "%img%"
"%vmrun%" -T ws enableSharedFolders "%img%"
exit

每次启动Linux虚拟机后在Windows中双击运行一次脚本即可正常使用共享文件夹。

推荐高级用法,双击脚本自动启动虚拟机并重置共享文件夹状态:

@echo off
::img变量为虚拟机VMX文件路径
set img=D:\VMI\Ubuntu\Ubuntu.vmx
::vmrun变量为vmrun.exe程序路径
set vmrun=C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe
"%vmrun%" -T ws start "%img%"
:check
Ping 127.0.0.1>nul
echo.
"%vmrun%" list|find /i "%img%">nul&&goto switch||goto check
:switch
"%vmrun%" -T ws disableSharedFolders "%img%"
"%vmrun%" -T ws enableSharedFolders "%img%"
exit

注意:脚本中set img=后面的vmx文件路径必须正确!

set img=D:\VMI\Ubuntu\Ubuntu.vmx

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐