上一篇                     
               
			  物理机如何向VirtualBox共享文件?
- 物理机
- 2025-06-20
- 3304
 在物理机设置VirtualBox共享文件夹路径,启动虚拟机后安装增强功能,通过挂载命令或图形界面将共享目录映射到虚拟机内,实现双向文件访问。
 
将物理机(宿主机)上的文件共享给VirtualBox虚拟机,最常用、最稳定且最高效的方法是使用VirtualBox的“共享文件夹”功能,这需要在虚拟机内安装额外的驱动(Guest Additions),但设置好后,共享体验接近本地磁盘访问。
核心方法:使用VirtualBox共享文件夹
原理: 此功能允许你将宿主机上的一个目录(文件夹)映射为虚拟机内部的一个网络位置或特殊设备,实现双向文件传输。
前提条件:

- VirtualBox已安装: 在物理机上正确安装最新版VirtualBox。
- 虚拟机已创建: 目标虚拟机(客户机)已创建并可以正常运行。
- VirtualBox Guest Additions已安装: 这是最关键的一步! 必须在虚拟机操作系统内部安装VirtualBox提供的增强功能包(Guest Additions),它包含了实现共享文件夹所需的驱动和工具。 
  - 如何安装Guest Additions: 
    - 启动目标虚拟机。
- 在VirtualBox窗口顶部的菜单栏,点击 设备(Devices)->安装Guest Additions CD映像...(Insert Guest Additions CD image...)。
- 虚拟机系统内通常会弹出一个自动运行的安装程序(Windows)或自动挂载CD(Linux/macOS),如果没有自动运行: 
      - Windows: 打开“此电脑/我的电脑”,找到新出现的CD驱动器(通常名为 VBox_GAs_版本号),双击运行里面的VBoxWindowsAdditions.exe,按照提示安装(可能需要管理员权限),安装完成后重启虚拟机。
- Linux (图形界面): 文件管理器通常会显示挂载的CD,打开并运行对应的安装脚本(通常是 VBoxLinuxAdditions.run),打开终端(Terminal),导航到挂载点(通常是/media/用户名/VBOXADDITIONS_版本号/或/run/media/用户名/VBOXADDITIONS_版本号/),然后执行:sudo sh ./VBoxLinuxAdditions.run 输入密码,等待安装完成,通常需要重启虚拟机。 
- Linux (命令行): 确保系统已安装必要的内核头文件和编译工具(如 build-essential,kernel-devel等,具体取决于发行版),挂载CD(如果未自动挂载):sudo mount /dev/cdrom /media/cdrom # 挂载点可能需要调整 cd /media/cdrom sudo sh ./VBoxLinuxAdditions.run 安装完成后重启。 
 
- Windows: 打开“此电脑/我的电脑”,找到新出现的CD驱动器(通常名为 
- macOS (客户机): 安装过程与Linux类似,通常会自动挂载,打开终端,进入挂载点(可能在 /Volumes/VBox_GAs_版本号),运行安装脚本(可能需要sudo)。
 
 
- 如何安装Guest Additions: 
    
设置共享文件夹步骤:

- 关闭虚拟机: 在配置共享文件夹之前,最好先关闭目标虚拟机(关闭->正常关机)。
- 打开虚拟机设置: 
  - 在VirtualBox主界面,选中目标虚拟机(不要启动)。
- 点击顶部的 设置(Settings)按钮(或右键虚拟机选择设置)。
 
- 进入共享文件夹设置: 
  - 在设置窗口左侧导航栏,点击 共享文件夹(Shared Folders)。
 
- 在设置窗口左侧导航栏,点击 
- 添加新的共享: 
  - 在右侧面板的顶部,点击文件夹图标旁边带 号的小按钮(添加共享文件夹)。
- 弹出“添加共享文件夹”对话框。
 
- 配置共享属性: 
  - 文件夹路径(Folder Path): 点击下拉框右侧的文件夹图标,浏览并选择物理机上你想共享的目录(文件夹),也可以直接输入路径(如 C:UsersYourNameSharedDocs或/home/yourname/shared)。
- 文件夹名称(Folder Name): 重要! 这是该共享在虚拟机内部访问时使用的标识符,建议使用简短、无空格、无特殊字符的名字(MySharedDocs,HostShare),虚拟机将通过这个名字来访问共享。
- 挂载点(Mount Point) (可选,主要用于Linux/Unix): 对于Linux/Unix客户机,你可以指定共享在虚拟机内挂载到的完整路径(/mnt/host_share),如果留空,VirtualBox通常会自动挂载到/media/sf_<FolderName>(需要vboxsf组权限)或/run/media/<user>/sf_<FolderName>。Windows客户机忽略此项。
- 只读分配(Read-only): 勾选此项,则虚拟机只能读取共享文件夹内容,不能修改或写入,默认不勾选,允许读写。
- 自动挂载(Auto-mount): 强烈建议勾选! 这样每次虚拟机启动时,会自动挂载该共享文件夹,否则需要每次手动挂载。
- 固定分配(Make Permanent): 默认勾选。 确保该共享设置是永久性的,保存在虚拟机配置中,不要取消。
 
- 文件夹路径(Folder Path): 点击下拉框右侧的文件夹图标,浏览并选择物理机上你想共享的目录(文件夹),也可以直接输入路径(如 
- 确认添加: 点击 确定(OK)或添加(Add)按钮。
- 应用设置: 在共享文件夹设置主界面,你会看到新添加的共享条目,点击底部的 确定(OK)保存所有虚拟机设置并关闭窗口。
- 启动虚拟机并访问共享: 
  - 启动虚拟机。
- 访问方式取决于虚拟机操作系统: 
    - Windows 客户机: 
      - 打开“文件资源管理器”。
- 在左侧导航栏或“此电脑/我的电脑”中,查找名为 网络位置(Network locations)或网络(Network)的部分。
- 你应该能看到一个名为 VBOXSVR或VirtualBox Shared Folders的网络计算机/设备。
- 双击打开 VBOXSVR,里面就会列出你设置的文件夹名称(Folder Name)(如MySharedDocs),双击即可访问共享内容。
- 或者: 在文件资源管理器的地址栏直接输入 \VBOXSVR<FolderName>(\VBOXSVRMySharedDocs) 并按回车。
 
- Linux 客户机 (图形界面): 
      - 打开文件管理器(如 Nautilus, Dolphin, Thunar)。
- 通常在左侧边栏的“网络(Network)”或“设备(Devices)”部分,可能会找到名为 sf_<FolderName>的项(sf_MySharedDocs)。
- 或者在文件管理器中直接导航到你在设置中指定的 挂载点(Mount Point)(如/mnt/host_share),或者VirtualBox自动挂载的默认位置(如/media/sf_MySharedDocs或/run/media/<user>/sf_MySharedDocs)。
- 权限问题: 默认情况下,只有 root用户和属于vboxsf用户组的用户才能访问自动挂载的共享文件夹(通常是/media/sf_*路径)。- 将你的普通用户添加到 vboxsf组:sudo usermod -aG vboxsf $USER 
- 执行此命令后,必须注销当前用户并重新登录,或者重启虚拟机,才能使组权限生效,之后即可正常访问。
 
- 将你的普通用户添加到 
 
- Linux/Unix 客户机 (命令行): 
      - 使用 mount命令查看已挂载的文件系统,通常能找到类型为vboxsf的挂载点(如/media/sf_MySharedDocs)。
- 使用 cd命令切换到挂载点目录即可访问文件。
- 同样需要确保你的用户属于 vboxsf组(见上面图形界面的权限说明)。
 
- 使用 
- macOS 客户机: 
      - 打开“访达(Finder)”。
- 在左侧边栏的“位置(Locations)”下,可能会看到共享文件夹的名称。
- 或者使用“前往(Go)”菜单 -> “前往文件夹(Go to Folder…)”,输入挂载点路径(如 /Volumes/<FolderName>或你在设置中指定的路径)。
 
 
- Windows 客户机: 
      
 
其他共享方法(备选,通常不如共享文件夹方便高效):
- 网络共享 (SMB/NFS/FTP等): 
  - 原理: 在物理机上设置一个网络共享(如Windows的SMB共享或Linux的NFS/Samba共享),然后在虚拟机内像访问局域网上的其他电脑一样访问这个共享。
- 优点: 不需要安装Guest Additions;跨平台兼容性好(不同虚拟机软件甚至物理机之间都可以用)。
- 缺点: 设置相对复杂(涉及宿主机网络共享设置、防火墙、虚拟机网络模式配置);速度通常不如VirtualBox共享文件夹快(走的是网络协议栈);需要配置用户权限;依赖于网络连接。
- 何时考虑: Guest Additions无法安装或不稳定;需要非常复杂的访问控制;需要在不同虚拟化平台间共享。
 
- 使用USB存储设备: 
  - 原理: 将文件复制到U盘或移动硬盘,然后在VirtualBox中将该USB设备直接连接到虚拟机使用。
- 优点: 操作简单直观;无需复杂配置。
- 缺点: 需要物理设备;文件传输是手动且非实时的(需要插拔设备或切换连接);不适合频繁共享或大文件共享;需要在虚拟机设置中配置USB筛选器。
- 何时考虑: 偶尔传输少量文件;Guest Additions和网络共享都不可行。
 
常见问题与故障排除 (体现E-A-T的Troubleshooting经验):
- 虚拟机里看不到共享文件夹/VBOXSVR: 
  - 首要检查: Guest Additions是否正确安装并成功运行?重启虚拟机试试,在虚拟机内检查是否有VirtualBox Guest Additions相关的服务/进程在运行。
- Windows客户机: 确保“网络发现”和“文件和打印机共享”已启用(在“网络和共享中心”->“高级共享设置”),检查防火墙是否阻止了访问。
- Linux客户机: 确认用户是否已加入 vboxsf组?执行groups命令查看,执行sudo usermod -aG vboxsf $USER后必须注销/重启才生效,检查挂载点是否存在且有权限访问(ls -ld /media/sf_*),尝试手动挂载(需要知道共享名和挂载点):sudo mount -t vboxsf <FolderName> <MountPoint> ( sudo mount -t vboxsf MySharedDocs /mnt/myshare)
- 所有系统: 检查虚拟机设置 -> 共享文件夹 -> 确保共享已添加、自动挂载勾选、固定分配勾选、路径和名称正确,尝试关闭虚拟机再重新添加一次共享文件夹设置。
 
- 无法写入共享文件夹(只读): 
  - 检查共享文件夹设置中的 只读分配(Read-only)是否被取消勾选。
- Linux客户机: 确认用户属于 vboxsf组且有写权限,检查挂载点的权限(ls -ld <MountPoint>),有时宿主机的NTFS/FAT32分区权限或文件系统本身的只读标志也可能导致问题。
 
- 检查共享文件夹设置中的 
- 共享文件夹性能慢: 
  - 确保使用的是 VirtualBox共享文件夹 而不是网络共享。
- 检查虚拟机是否分配了足够的CPU和内存资源。
- 如果宿主机是Windows,尝试关闭宿主机上的杀毒软件实时扫描(谨慎操作)或将共享文件夹加入排除列表。
- 确保虚拟机网络适配器设置正确(例如使用 NAT或仅主机(Host-Only)而不是桥接(Bridged),除非必要),避免网络流量干扰(虽然共享文件夹不直接走这个网络)。
 
- 安装Guest Additions失败: 
  - Linux: 最常见的原因是缺少内核头文件 (linux-headers-$(uname -r)) 或编译工具 (build-essential,dkms),确保系统已更新 (sudo apt update && sudo apt upgrade/sudo yum update),根据错误信息搜索解决方案。
- 确保虚拟机有网络连接以下载可能的依赖包。
- 尝试在虚拟机启动时按 F8(或右Ctrl+F8显示VirtualBox菜单) 选择安全模式启动(Windows),然后再安装Guest Additions。
- 检查VirtualBox和Guest Additions ISO的版本是否匹配(通常用VirtualBox自动下载的ISO最好)。
 
- Linux: 最常见的原因是缺少内核头文件 (
安全提示 (体现E-A-T的责任感):

- 最小权限原则: 只共享必要的文件夹,避免共享整个系统盘或用户主目录,在共享设置中考虑是否启用“只读”。
- 警惕反面软件: 共享文件夹是双向通道,虚拟机内的反面软件可能通过共享文件夹感染宿主机,确保虚拟机系统和宿主机系统都有可靠的安全防护(杀毒软件/防火墙)。
- 敏感数据: 避免通过共享文件夹传输高度敏感的信息(如密码、密钥),除非你完全信任虚拟机和宿主机的安全性,考虑使用加密容器或更安全的传输方式。
对于大多数用户,安装VirtualBox Guest Additions并使用内置的“共享文件夹”功能是实现物理机与VirtualBox虚拟机之间高效、便捷、稳定文件共享的最佳方案,务必仔细完成Guest Additions的安装,并正确配置共享文件夹的名称、路径和权限(尤其是Linux下的 vboxsf 用户组),网络共享和USB设备可以作为特定场景下的补充方案,遇到问题时,优先检查Guest Additions状态和用户权限设置。
引用说明:
- 本文操作步骤基于Oracle VM VirtualBox官方文档中关于“共享文件夹”和“Guest Additions”的核心功能描述。
- 常见问题解决方案参考了VirtualBox官方论坛、社区Wiki以及主流操作系统(Windows, Linux发行版如Ubuntu/Fedora)的通用文件共享和权限管理知识。
- 安全提示基于通用的信息安全最佳实践。
 
  
			