在使用VMware Workstation或ESXi管理虚拟机(尤其运行Linux发行版)时,共享文件夹(HGFS)是宿主机和访客机之间传输数据最便捷的方式。虽然VMware Tools通常会自动完成挂载,但有时由于内核更新、工具安装不完整或权限配置需求,我们需要手动介入。
本文将聚焦于如何使用vmhgfs-fuse工具,配合关键的-o allow_other选项,手动且成功地挂载VMware宿主机共享文件夹。
一、 前提条件:确保VMware Tools HGFS模块可用
手动挂载的前提是VMware Tools已经正确安装,并且HGFS(Host Guest Filesystem)模块已经加载到内核中。
首先,检查HGFS模块是否已加载:
lsmod | grep vmhgfs
如果没有任何输出,您可能需要重新安装或编译VMware Tools。
其次,需要创建一个挂载点(如果不存在):
sudo mkdir -p /mnt/hgfs
二、 核心操作:手动挂载命令详解
标准的VMware共享文件夹挂载是通过vmhgfs-fuse工具完成的。我们使用的核心命令如下:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
命令参数解析:
- ****.host:/****: 这是指定宿主机共享文件夹的特殊路径。.host指代宿主机,:后紧跟的/表示挂载所有宿主机上已配置的共享文件夹的根目录。
- ****/mnt/hgfs****: 这是我们在访客机Linux系统中指定的挂载点。
- ****-o allow_other****: 这是最关键的选项。默认情况下,FUSE挂载的文件系统只能被执行挂载操作的用户(通常是root或sudo用户)访问。添加此选项允许所有非root用户访问挂载点,解决了普通用户无法读写共享文件夹的问题。
三、 验证挂载结果
执行完挂载命令后,我们需要验证是否成功以及权限是否正确。
1. 检查挂载状态
使用df -h命令查看文件系统列表,确认vmhgfs-fuse是否成功挂载到目标路径。
df -h | grep hgfs
预期输出可能类似于:
vmhgfs-fuse 500G 300G 200G 60% /mnt/hgfs
2. 检查共享文件夹内容和权限
进入挂载点,查看宿主机上配置的所有共享文件夹。由于使用了-o allow_other,普通用户应该能够访问它们。
ls -l /mnt/hgfs
# 假设您在宿主机设置了一个名为 'MyShare' 的共享文件夹
ls -l /mnt/hgfs/MyShare
四、 卸载共享文件夹
如果您需要断开共享,可以使用标准的umount命令:
sudo umount /mnt/hgfs
五、 自动化挂载(可选,但推荐)
虽然手动挂载解决了即时问题,但每次重启后都需要重新执行命令非常麻烦。对于依赖HGFS的系统,建议配置fstab。
注意: HGFS的FUSE挂载方式写入fstab可能不如传统的vmhgfs模块稳定,且需要确保在网络和HGFS服务启动后执行挂载。
编辑/etc/fstab:
sudo nano /etc/fstab
添加以下行(请确保您了解FUSE挂载的风险,如果系统无法启动,可能需要进入急救模式移除此行):
.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
保存并退出。下次启动时,系统将尝试自动挂载共享文件夹。
汤不热吧