需先安装VMware Tools并启用共享文件夹,再依客户机系统映射为网络驱动器(Windows)或挂载到/mnt/hgfs(Linux),异常时可用SCP/Samba替代,最后排查NAT服务、防火墙及权限问题。
如果您在VMware虚拟机中需要访问主机上的文件,但发现文件无法直接读取或传输缓慢,则可能是由于共享文件夹未正确配置或网络映射未建立。以下是实现主机与虚拟机间文件共享的具体操作步骤:
一、启用VMware Tools并配置共享文件夹
VMware Tools是实现主机与虚拟机高效文件共享的基础组件,它提供驱动支持和增强型服务,包括拖放、剪贴板共享及共享文件夹功能。未安装或未更新Tools可能导致共享文件夹选项灰显或失效。
1、启动虚拟机并以管理员身份登录操作系统。
2、在VMware Workstation或Player菜单栏中,点击“虚拟机”→“安装VMware Tools”。若已安装,选择“重新安装”。
3、在虚拟机内打开光驱设备,运行autorun.exe(Windows)或挂载ISO后执行./vmware-install.pl(Linux)。
4、安装完成后重启虚拟机。
5、右键虚拟机设置→“选项”选项卡→选择“共享文件夹”→点击“总是启用”。
6、点击“添加”按钮,按向导指定主机端路径(如C:VMshare),并为该文件夹命名(如host_share)。
7、勾选“启用此共享”和“在Windows客户机中映射为网络驱动器”(仅限Windows客户机)。
二、在Windows客户机中手动映射网络驱动器
当自动映射失败或需自定义盘符时,可通过Windows资源管理器或命令行方式将共享文件夹映射为网络驱动器,使其表现为本地磁盘,便于程序直接调用。
1、按下Win+R,输入\vmware-hostShared Folders,回车确认。
2、若提示连接失败,检查VMware Host-Guest Filesystem服务是否运行:按Win+R输入services.msc,找到“VMware Host-Guest Filesystem”并设为“自动”启动,然后启动该服务。
3、在弹出的共享列表中,右键目标文件夹(如host_share)→“映射网络驱动器”。
4、在“驱动器”下拉框中选择未使用的盘符(如Z:),勾选“登录时重新连接”,点击“完成”。
5、验证映射成功:打开“此电脑”,确认Z:盘图标显示且可双击访问内容。
三、在Linux客户机中挂载共享文件夹
Linux客户机不支持自动映射为驱动器,需通过vmhgfs-fuse模块将共享文件夹挂载到本地目录,使文件系统可被标准命令(如ls、cp)识别和操作。
1、确保open-vm-tools-desktop已安装:执行sudo apt update && sudo apt install open-vm-tools-desktop(Ubuntu/Debian)或sudo yum install open-vm-tools-desktop(CentOS/RHEL)。
2、创建挂载点目录:执行sudo mkdir -p /mnt/hgfs。
3、加载vmhgfs-fuse模块:执行sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000。
4、验证挂载结果:执行ls /mnt/hgfs,应列出主机端配置的所有共享文件夹名称(如host_share)。
5、为实现开机自动挂载,将以下行追加至/etc/fstab:.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=1000 0 0。
四、使用SCP或Samba绕过VMware共享机制
当VMware Tools异常、权限策略限制或客户机系统不兼容时,可采用基于网络协议的替代方案,在主机与虚拟机之间建立独立文件通道,无需依赖VMware底层服务。
1、在主机上启用OpenSSH服务(Windows 10/11:设置→应用→可选功能→添加OpenSSH服务器)。
2、获取主机IP地址:在主机命令提示符中执行ipconfig,记录IPv4地址(如192.168.137.1)。
3、在Linux虚拟机中执行:scp -r username@192.168.137.1:/path/on/host /local/path/。
4、或在主机安装Samba服务,配置共享目录并设置用户权限;在虚拟机中执行sudo mount -t cifs //192.168.137.1/sharename /mnt/samba -o username=user,password=pass。
5、验证传输完整性:对比源文件与目标文件的md5sum值。
五、排查常见访问拒绝错误
共享文件夹显示为空、提示“拒绝访问”或“找不到网络路径”,通常源于权限配置缺失、服务未运行或安全策略拦截,需逐项验证基础依赖状态。
1、检查VMware NAT服务是否运行:在主机服务管理器中确认“VMware NAT Service”状态为“正在运行”。
2、确认客户机防火墙未屏蔽HGFS端口:临时关闭Windows Defender防火墙或Linux的ufw/iptables进行测试。
3、验证共享文件夹路径权限:在主机端右键共享目录→“属性”→“安全”选项卡,确保“Users”组具有“读取和执行”权限。
4、检查客户机用户是否属于vmware-users组(Linux):执行groups命令,若无输出,执行sudo usermod -a -G vmware-users $USER后重新登录。
5、在虚拟机中执行vmware-hgfsclient,确认输出包含已配置的共享文件夹名称;若无输出,说明共享未生效。
