当前位置:首页 > 物理机 > 正文

Linux虚拟机如何共享物理机文件夹

通过虚拟化软件设置共享文件夹,实现物理机与Linux虚拟机间的双向文件访问,便于数据交换和操作同步。

Linux虚拟机与物理机共享文件夹终极指南

在虚拟机中运行Linux,却苦于文件传输不便?共享文件夹功能正是您需要的解决方案!它能无缝桥接物理机和虚拟机,实现文件实时共享,彻底告别繁琐的U盘拷贝或网络传输,大幅提升开发、测试和学习的效率,下面详细介绍两种主流虚拟机软件(VirtualBox 和 VMware)的设置方法。


一、VirtualBox 中设置共享文件夹

  1. 安装 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
  2. 在 VirtualBox 管理界面设置共享文件夹 (物理机操作)

    Linux虚拟机如何共享物理机文件夹  第1张

    • 确保您的Linux虚拟机处于关闭状态。
    • 在VirtualBox管理器中,选中您的虚拟机。
    • 点击 设置 -> 共享文件夹
    • 点击右侧的文件夹+图标添加新共享。
    • 文件夹路径: 点击下拉箭头,选择 其他...,然后浏览并选择您物理机上想要共享的文件夹D:VM_Share)。
    • 文件夹名称: 输入一个在虚拟机内部使用的名称(vbox_share)。请使用小写字母和下划线,避免空格和特殊字符。
    • 勾选 自动挂载:确保虚拟机启动时自动挂载。
    • 勾选 固定分配:使共享更持久。
    • 点击 确定 保存设置。
  3. 在 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 中设置共享文件夹

  1. 安装 VMware Tools (虚拟机内操作 – 推荐Open-VM-Tools)

    • 启动您的Linux虚拟机。
    • 现代Linux发行版 (Ubuntu, Debian, Fedora, CentOS等) 通常预装了开源的 open-vm-toolsopen-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更易维护且与内核同步更新)。
  2. 在 VMware 管理界面启用共享文件夹 (物理机操作)

    • 确保您的Linux虚拟机处于开启状态。
    • 在VMware菜单栏,点击 虚拟机 -> 设置
    • 选择 选项 选项卡 -> 共享文件夹
    • 选择 总是启用
    • 点击右侧的 添加... 按钮。
    • 浏览并选择您物理机上想要共享的文件夹D:VMware_Share)。
    • 设置一个在虚拟机内部使用的 名称vmware_share)。
    • 勾选 启用此共享
    • 根据需要勾选 只读子文件夹映射
    • 点击 完成 -> 确定 保存设置。
  3. 在 Linux 虚拟机内访问共享文件夹

    • VMware共享文件夹的标准挂载点是 /mnt/hgfs/
    • 打开终端,进入该目录查看:
      cd /mnt/hgfs/
      ls
    • 您应该能看到以您在VMware中设置的共享名称命名的文件夹(vmware_share)。
    • 路径即为:/mnt/hgfs/vmware_share/
    • 权限问题:
      • 与VirtualBox类似,访问权限通常由挂载时的用户决定。
      • 如果遇到权限问题(无法读写),可以在VMware共享设置中尝试勾选 映射为已登录用户(如果可用),或者在Linux端检查 /mnt/hgfs/ 及其子目录的所有者和权限,必要时使用 chmodchown 调整(需谨慎操作)。

三、通用技巧与故障排除

  • 自动挂载 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的 vboxsf)。
    • 检查挂载点的权限 (ls -ld /media/sf_vbox_share /mnt/hgfs/vmware_share)。
    • 考虑在物理机共享文件夹上设置适当的Everyone或特定用户权限(Windows物理机)。
    • 在VMware中尝试 映射为已登录用户 选项。
  • 共享未出现/无法访问:
    • 确认Guest Additions / Open-VM-Tools 安装成功并已重启。 这是最常见原因!检查安装日志 (/var/log/vboxadd-install.logjournalctl 相关日志)。
    • 检查虚拟机设置中共享文件夹路径和名称是否正确启用。
    • 确保虚拟机网络适配器处于 桥接模式NAT模式(共享文件夹通常不依赖特定网络模式,但确保网络基本连通是好的)。
    • 查看系统日志 (dmesg | tail, /var/log/syslog) 寻找挂载错误信息。
  • 性能优化: 对于大型文件操作,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)的经验总结。
0