Virtualbox主机和虚拟机之间实现文件夹共享及双向拷贝
VirtualBox 主机与虚拟机文件夹共享及双向拷贝方案
一、共享文件夹设置
1. 安装VirtualBox Guest Additions
前提条件:在虚拟机中安装Guest Additions增强工具
- 启动虚拟机
- 菜单选择"设备" > "安装增强功能"
- 在虚拟机内运行安装程序(Windows)或挂载ISO执行脚本(Linux)
2. 配置共享文件夹
方法一:通过VirtualBox界面设置
- 关闭虚拟机
- 右键虚拟机 > 设置 > "共享文件夹"
- 点击右侧"+"图标添加共享
- 文件夹路径:选择主机上的目录
- 文件夹名称:自定义名称(如
shared_folder
)
- 勾选"自动挂载"(Auto-mount)和"固定分配"(Make Permanent)
方法二:使用VBoxManage命令
VBoxManage sharedfolder add "VM名称" --name shared_folder --hostpath "主机路径" --automount
二、不同系统下的访问方式
Windows虚拟机
- 共享文件夹会自动映射为网络驱动器
- 或通过
\\vboxsvr\shared_folder
访问
Linux虚拟机
- 共享文件夹通常挂载在
/media/sf_shared_folder
- 需要将用户加入vboxsf组才能访问:
bash
sudo usermod -aG vboxsf $USER
然后重启虚拟机生效
macOS虚拟机
- 类似Linux系统,挂载在
/media/sf_shared_folder
- 同样需要用户加入vboxsf组
三、双向拷贝的其他方法
1. 拖放功能
- 确保启用了双向拖放:
- 虚拟机设置 > 常规 > 高级 > 拖放:选择"双向"
- 安装Guest Additions后可直接拖放文件
2. 剪贴板共享
- 虚拟机设置 > 常规 > 高级 > 剪贴板共享:选择"双向"
- 支持文本和文件的复制粘贴
3. 网络共享
- 在主机和虚拟机间配置Samba/NFS共享
- 适用于需要更复杂权限控制的场景
4. SSH/SFTP传输
- 在虚拟机中启用SSH服务
- 使用FileZilla等工具通过SFTP传输文件
四、常见问题解决
共享文件夹不可见:
- 确认Guest Additions已安装
- 检查用户是否在vboxsf组中
- 尝试手动挂载:
sudo mount -t vboxsf shared_folder /mnt/share
权限问题:
- 使用
-o uid=1000,gid=1000
指定挂载参数(数字为用户/组ID)
- 或修改共享文件夹权限:
chmod -R 777 /media/sf_shared_folder
性能优化:
- 对于大量小文件,考虑使用网络共享而非VirtualBox共享文件夹
- 禁用杀毒软件实时扫描共享文件夹
Windows主机路径问题:
- 使用反斜杠
\
或双反斜杠\\
指定路径
- 避免使用包含空格或特殊字符的路径
五、高级配置
1. 自动挂载配置(Linux)
编辑/etc/fstab
添加:
shared_folder /mnt/share vboxsf defaults,uid=1000,gid=1000 0 0
2. 符号链接处理
在共享文件夹配置中启用"符号链接支持"选项
3. 只读共享
在添加共享时选择"只读"选项,防止虚拟机修改主机文件
通过以上方法,您可以灵活地在VirtualBox主机和虚拟机之间实现文件共享和双向传输。