上一篇
Linux虚拟机如何共享物理机文件夹
- 物理机
- 2025-06-11
- 2198
通过虚拟化软件设置共享文件夹,实现物理机与Linux虚拟机间的双向文件访问,便于数据交换和操作同步。
Linux虚拟机与物理机共享文件夹终极指南
在虚拟机中运行Linux,却苦于文件传输不便?共享文件夹功能正是您需要的解决方案!它能无缝桥接物理机和虚拟机,实现文件实时共享,彻底告别繁琐的U盘拷贝或网络传输,大幅提升开发、测试和学习的效率,下面详细介绍两种主流虚拟机软件(VirtualBox 和 VMware)的设置方法。
一、VirtualBox 中设置共享文件夹
-
安装 VirtualBox Guest Additions (虚拟机内操作)
- 启动您的Linux虚拟机。
- 在VirtualBox菜单栏,点击
设备
->安装增强功能...
,这会在虚拟机内挂载一个虚拟光盘。 - 打开终端,执行以下命令挂载光盘并安装:
# 创建挂载点 (如果不存在) sudo mkdir -p /mnt/cdrom # 挂载增强功能镜像 sudo mount /dev/cdrom /mnt/cdrom # 进入挂载目录并运行安装脚本 (通常需要root权限) cd /mnt/cdrom sudo ./VBoxLinuxAdditions.run
- 安装完成后,重启虚拟机:
sudo reboot
。
-
在 VirtualBox 管理界面设置共享文件夹 (物理机操作)
- 确保您的Linux虚拟机处于关闭状态。
- 在VirtualBox管理器中,选中您的虚拟机。
- 点击
设置
->共享文件夹
。 - 点击右侧的文件夹+图标添加新共享。
- 文件夹路径: 点击下拉箭头,选择
其他...
,然后浏览并选择您物理机上想要共享的文件夹(D:VM_Share
)。 - 文件夹名称: 输入一个在虚拟机内部使用的名称(
vbox_share
)。请使用小写字母和下划线,避免空格和特殊字符。 - 勾选
自动挂载
:确保虚拟机启动时自动挂载。 - 勾选
固定分配
:使共享更持久。 - 点击
确定
保存设置。
-
在 Linux 虚拟机内访问共享文件夹
- 启动您的Linux虚拟机。
- Guest Additions安装正确后,共享文件夹通常会自动挂载到
/media/
目录下,子目录名称为sf_<你设置的文件夹名称>
。 - 如果您设置的文件夹名称是
vbox_share
,那么路径通常是:/media/sf_vbox_share/
- 打开文件管理器或使用终端
cd /media/sf_vbox_share/
即可访问共享内容。 - 权限问题:
- 默认情况下,只有
vboxsf
用户组的成员才能访问共享文件夹。 - 将您的Linux用户添加到
vboxsf
组即可获得访问权限:sudo usermod -aG vboxsf $(whoami)
- 重要: 执行此命令后,您需要完全注销当前用户并重新登录(或者重启虚拟机),用户组更改才能生效。
- 默认情况下,只有
二、VMware Workstation/Player 中设置共享文件夹
-
安装 VMware Tools (虚拟机内操作 – 推荐Open-VM-Tools)
- 启动您的Linux虚拟机。
- 现代Linux发行版 (Ubuntu, Debian, Fedora, CentOS等) 通常预装了开源的
open-vm-tools
或open-vm-tools-desktop
(提供图形界面拖放支持),这是首选方式。 - 检查是否已安装:
dpkg -l | grep open-vm-tools # Debian/Ubuntu rpm -qa | grep open-vm-tools # RedHat/CentOS/Fedora
- 如果未安装,使用包管理器安装:
# Debian/Ubuntu sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y # RedHat/CentOS (8+) sudo dnf install open-vm-tools open-vm-tools-desktop -y # 较旧CentOS (7) sudo yum install open-vm-tools open-vm-tools-desktop -y
- 安装完成后,重启虚拟机:
sudo reboot
。 - (传统方法:VMware菜单
虚拟机
->安装 VMware Tools
已较少使用,因为Open-VM-Tools更易维护且与内核同步更新)。
-
在 VMware 管理界面启用共享文件夹 (物理机操作)
- 确保您的Linux虚拟机处于开启状态。
- 在VMware菜单栏,点击
虚拟机
->设置
。 - 选择
选项
选项卡 ->共享文件夹
。 - 选择
总是启用
。 - 点击右侧的
添加...
按钮。 - 浏览并选择您物理机上想要共享的文件夹(
D:VMware_Share
)。 - 设置一个在虚拟机内部使用的
名称
(vmware_share
)。 - 勾选
启用此共享
。 - 根据需要勾选
只读
或子文件夹映射
。 - 点击
完成
->确定
保存设置。
-
在 Linux 虚拟机内访问共享文件夹
- VMware共享文件夹的标准挂载点是
/mnt/hgfs/
。 - 打开终端,进入该目录查看:
cd /mnt/hgfs/ ls
- 您应该能看到以您在VMware中设置的共享名称命名的文件夹(
vmware_share
)。 - 路径即为:
/mnt/hgfs/vmware_share/
。 - 权限问题:
- 与VirtualBox类似,访问权限通常由挂载时的用户决定。
- 如果遇到权限问题(无法读写),可以在VMware共享设置中尝试勾选
映射为已登录用户
(如果可用),或者在Linux端检查/mnt/hgfs/
及其子目录的所有者和权限,必要时使用chmod
或chown
调整(需谨慎操作)。
- VMware共享文件夹的标准挂载点是
三、通用技巧与故障排除
- 自动挂载 vs 手动挂载:
- 上述方法都设置了自动挂载,如果自动挂载失败,可以尝试手动挂载:
- VirtualBox:
sudo mount -t vboxsf <共享文件夹名称> <虚拟机内挂载点> # sudo mount -t vboxsf vbox_share /mnt/my_vbox_share
- VMware:
sudo /usr/bin/vmhgfs-fuse .host:/<共享文件夹名称> <虚拟机内挂载点> -o subtype=vmhgfs-fuse,allow_other # sudo /usr/bin/vmhgfs-fuse .host:/vmware_share /mnt/my_vmware_share -o subtype=vmhgfs-fuse,allow_other
- VirtualBox:
- 上述方法都设置了自动挂载,如果自动挂载失败,可以尝试手动挂载:
- 权限问题深入:
- 确保您的用户已加入正确的组(VirtualBox的
vboxsf
)。 - 检查挂载点的权限 (
ls -ld /media/sf_vbox_share /mnt/hgfs/vmware_share
)。 - 考虑在物理机共享文件夹上设置适当的Everyone或特定用户权限(Windows物理机)。
- 在VMware中尝试
映射为已登录用户
选项。
- 确保您的用户已加入正确的组(VirtualBox的
- 共享未出现/无法访问:
- 确认Guest Additions / Open-VM-Tools 安装成功并已重启。 这是最常见原因!检查安装日志 (
/var/log/vboxadd-install.log
或journalctl
相关日志)。 - 检查虚拟机设置中共享文件夹路径和名称是否正确启用。
- 确保虚拟机网络适配器处于
桥接模式
或NAT模式
(共享文件夹通常不依赖特定网络模式,但确保网络基本连通是好的)。 - 查看系统日志 (
dmesg | tail
,/var/log/syslog
) 寻找挂载错误信息。
- 确认Guest Additions / Open-VM-Tools 安装成功并已重启。 这是最常见原因!检查安装日志 (
- 性能优化: 对于大型文件操作,NAT网络模式下的共享文件夹性能可能不如桥接模式,对于极高IO需求,考虑使用Samba/NFS网络共享(设置更复杂)。
- 安全提示: 避免共享包含敏感信息的系统目录(如整个用户目录
/home
或系统根目录),仅共享必要的、特定的工作目录。
掌握Linux虚拟机与物理机之间的共享文件夹设置,是提升虚拟化工作效率的关键一步,无论是使用VirtualBox还是VMware,核心步骤都离不开正确安装增强工具(Guest Additions / Open-VM-Tools)和在管理界面中配置共享路径,成功配置后,您将体验到近乎本地的文件访问速度,让开发调试、数据分析和日常操作变得无比顺畅。
遇到问题?欢迎在评论区留言,分享您的经验或困惑!
引用说明:
- 本文操作步骤基于 VirtualBox 官方文档关于 Guest Additions 和共享文件夹的说明。
- VMware 共享文件夹配置参考了 VMware Workstation/Player 用户手册及 Open-VM-Tools 项目文档。
- Linux 权限管理部分遵循标准的 UNIX/Linux 文件系统权限模型和用户组管理实践。
- 故障排查建议综合了常见技术社区(如Stack Overflow, Ask Ubuntu, VMware Communities)的经验总结。