马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在 Windows 上装了 VMware、里面跑 Ubuntu 做开发,最烦的就是主机和虚拟机之间倒腾文件:拖过去、拷出来、再拖回去,几分钟就没了。VMware 的共享文件夹能直接把主机目录挂进虚拟机,一次配置长期受益。本文走一遍完整流程,顺带把 open-vm-tools 的安装和自动挂载的坑说清楚。
开搞之前要准备什么
- VMware Workstation Pro 17 或更高版本,已经装好、并且建好了 Ubuntu 22.04 虚拟机。
- 虚拟机关机状态下才能改共享设置(运行中改不了)。
- 虚拟机里能正常联网、能跑 apt。
第一步:在 VMware 里启用共享文件夹
- 关闭正在运行的 Ubuntu 虚拟机。
- 在 VMware 左侧库里选中这台虚拟机,点「设置(VM Settings)」。
- 切到「选项(Options)」页签 → 「共享文件夹(Shared Folders)」。
- 选「总是启用(Always enabled)」。
- 点「添加(Add)」→ 浏览选主机上要共享的目录 → 起个名字(英文、别带空格,后面挂载命令要用)→ 勾选「启用此共享」→ 完成 → 确认。
这里的共享名建议用纯英文小写,比如 share。中文名或者带空格在 fuse 挂载时经常要转义,徒增麻烦。
第二步:虚拟机里装工具
VMware 官方推荐用 open-vm-tools 替代老旧的 VMware Tools,共享文件夹功能依赖它。
sudo apt update
如果之前装过旧版,先卸干净免得出冲突:
sudo apt autoremove open-vm-tools --purge
sudo rm -rf /etc/vmware-tools/
再装新的(-desktop 那一项负责拖放、复制粘贴、分辨率自适应这些桌面功能):
sudo apt install open-vm-tools open-vm-tools-desktop -y
装完重启一次,或者 sudo systemctl restart vmtoolsd。
第三步:找到共享文件夹并挂上去
1. 看有哪些共享
vmware-hgfsclient
会打印出共享名,比如 share。这条命令必须先能列出内容,再谈挂载;列不出来就是 vmtoolsd 没跑起来或者 VMware 那边没配对。
2. 建挂载点
sudo mkdir -p /mnt/hgfs
3. 手动挂载
sudo vmhgfs-fuse .host:/share /mnt/hgfs -o allow_other,uid=1000,gid=1000,umask=022
参数逐个讲:
.host:/share — 固定格式,.host: 后面接第一步起的共享名。
allow_other — 允许非 root 用户访问。不加这条,普通用户进去就是权限拒绝。
uid=1000 和 gid=1000 — 映射到当前用户的 ID,Ubuntu 第一个普通用户默认就是 1000。不知道自己 ID 就跑 id 看。
umask=022 — 文件权限设为 755 风格,避免新建文件全是不可写的 600。
挂载完 ls /mnt/hgfs 应该能看到主机上那个目录里的文件了。
第四步:配置开机自动挂载
手动挂载重启就没了,写进 /etc/fstab:
sudo nano /etc/fstab
末尾加一行(注意共享名换成你自己的):
.host:/share /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,umask=022 0 0
nano 里保存是 Ctrl+O 然后回车,退出是 Ctrl+X。
写完先验证,别重启了才发现写错:
sudo mount -a
不报错就说明配置没问题,重启虚拟机再 ls /mnt/hgfs 确认。mount -a 是所有 fstab 故障的救命稻草,比盲猜靠谱。
常见的几个问题
vmware-hgfsclient 没输出:先 systemctl status vmtoolsd,服务没起就 systemctl enable --now vmtoolsd;还不行就回 VMware 设置里确认共享真的加进去了、并且是「总是启用」。
- 挂载报
fuse: mount failed 或权限不足:八成是漏了 allow_other,或者 uid/gid 填错。用 id 核对一下。
- fstab 加了却不自动挂:检查
/etc/fstab 里的文件系统类型列是不是 fuse.vmhgfs-fuse(注意前面的 fuse. 前缀,漏了就识别不出来),再 mount -a 试一遍。
- 中文文件名乱码:挂载参数加
-o iocharset=utf8。
- 拷贝大文件很慢:共享走的是主机文件系统,机械盘 + 网络盘场景本来就慢,大文件迁移建议用
scp 或者打包成压缩包再传。
不想走共享文件夹的话
- USB 直通:把 U 盘或移动硬盘整个直通给虚拟机,速度最快,但要插线。
- SFTP / scp:虚拟机里装 openssh-server,主机上用 WinSCP 或
scp 传,跨网络最稳。
- 挂载主机目录:VMware 的「共享文件夹」本质上就是把主机目录
fuse 挂进来,也可以用 Unix socket / NFS 走网络共享。
整套配置只涉及虚拟机内部的挂载点和 fstab,不动主机上任何文件。配好之后主机和虚拟机之间传文件就跟在自己文件夹里一样。
qidao123.com企服评测-应用市场 编辑提示 |