一、共享文件夹(无需 sudo
)
适用场景
需频繁传输文件且虚拟机已安装 VMware Tools。
操作步骤
-
启用 VMware 共享文件夹(主机操作)
- VMware 设置 → 选项 → 共享文件夹 → 添加主机目录(如
C:\VM_Shared
)。
- VMware 设置 → 选项 → 共享文件夹 → 添加主机目录(如
-
在虚拟机中挂载到用户目录(无需
sudo
)# 手动挂载到用户目录(假设共享目录名为 VM_Shared) mkdir -p ~/shared_folder vmhgfs-fuse .host:/VM_Shared ~/shared_folder -o allow_other -o uid=$(id -u) -o gid=$(id -g)
- 参数说明:
allow_other
:允许其他用户访问。uid
/gid
:绑定到当前用户权限(通过id -u
和id -g
获取)。
- 参数说明:
-
验证访问
ls ~/shared_folder # 查看文件 cp ~/file.txt ~/shared_folder/ # 复制文件到共享目录
注意事项
- 依赖 VMware Tools:需提前安装 VMware Tools(可能需要管理员权限)。
- 重启后失效:手动挂载需每次重启后重新执行命令。
- 权限问题:确保主机共享目录权限开放(Windows 右键目录 → 属性 → 共享)。
二、网络共享(无需 sudo
)
适用场景
无法使用共享文件夹或需要跨平台传输。
方法 1:Python HTTP 服务器
-
在虚拟机启动服务
# 进入需共享的目录 cd ~/my_files # 启动 HTTP 服务(端口 8000) python3 -m http.server 8000
-
主机访问下载文件
- 浏览器访问
http://虚拟机IP:8000
(通过hostname -I
获取虚拟机 IP)。
- 浏览器访问
方法 2:SCP/SFTP(需 SSH 服务)
-
虚拟机启用 SSH(需已安装)
# 检查 SSH 服务状态(若已安装) systemctl --user status ssh
-
从主机传输文件(无需
sudo
)# 示例:从主机复制到虚拟机用户目录 scp -P 22 主机文件路径 用户名@虚拟机IP:~/目标路径/
注意事项
- SSH 服务依赖:若未安装 OpenSSH,需管理员权限安装。
- 防火墙限制:确保虚拟机防火墙开放端口(如 8000、22)。
- IP 变动问题:建议虚拟机使用静态 IP 或通过
hostname -I
查询动态 IP。
三、U 盘共享(无需 sudo
)
适用场景
需物理介质传输或网络不可用。
操作步骤
-
U 盘格式化为 FAT32/exFAT(主机操作)
- Windows:右键 U 盘 → 格式化 → 选择 exFAT。
- Linux:使用图形化工具(如 GParted)格式化(可能需要临时借用管理员权限)。
-
在虚拟机中挂载 U 盘(自动或手动)
- 自动挂载:VMware 菜单 → 可移动设备 → U 盘 → 连接,文件默认在
/media/$USER
。 - 手动挂载(用户目录):
mkdir ~/usb vmhgfs-fuse .host:/USB_NAME ~/usb -o allow_other
- 自动挂载:VMware 菜单 → 可移动设备 → U 盘 → 连接,文件默认在
-
复制文件
cp ~/file.txt ~/usb/ # 虚拟机 → U 盘 cp ~/usb/file.txt ~/ # U 盘 → 虚拟机
注意事项
- 文件系统兼容性:避免使用 ext4,Windows 不识别。
- 安全卸载:VMware 菜单 → 可移动设备 → U 盘 → 断开连接,防止文件损坏。
- 权限问题:若手动挂载失败,检查 U 盘名称是否匹配(通过
ls /mnt/hgfs/
查看)。
四、通用技巧(无需 sudo
)
1. 用户空间工具
- 下载预编译工具:
将工具(如vmhgfs-fuse
静态版)解压到~/bin
,通过export PATH=$PATH:~/bin
加入路径。
2. 临时文件目录
- 使用
/tmp
或用户目录:cp /mnt/hgfs/共享文件 /tmp/ # 绕过权限限制
3. 环境变量覆盖
- 强制程序使用用户目录:
export LD_LIBRARY_PATH=~/lib:$LD_LIBRARY_PATH
五、故障排查
- 挂载失败:
dmesg | tail # 查看设备识别日志 lsblk # 检查 U 盘设备名(如 /dev/sdb1)
- 网络不通:
ping 主机IP # 测试连通性 netstat -tuln # 检查端口监听状态
总结
方法 | 优点 | 缺点 |
---|---|---|
共享文件夹 | 速度快,无缝集成 | 依赖 VMware Tools |
Python HTTP 服务器 | 无需安装,跨平台 | 需开放端口 |
U 盘 | 物理隔离,无需网络 | 需手动插拔,兼容性要求 |
通过以上方法,可在无 sudo
权限时灵活实现文件共享,优先推荐 Python HTTP 服务器 和 U 盘手动挂载,兼顾效率与安全性。
在实操的过程中,使用U盘共享会损坏文件,后改使用网络共享。(无需 sudo 权限)