Linux 虚拟机文件共享设置指南
一 方法总览与选择
- 虚拟机共享文件夹:在 VMware 或 VirtualBox 中开启共享文件夹,安装增强工具后在 Linux 内挂载,适合与本机高速互通。
- SSH/SFTP/SCP:通过 SSH 协议在主机与虚拟机间加密传输,命令简单、跨平台,适合日常拷贝与自动化。
- Samba/CIFS:在 Linux 上搭建 Samba 共享,Windows 资源管理器可直接访问,适合跨系统、局域网共享。
- NFS:在 Linux 间以 NFS 挂载目录,适合同网段、类 Unix 环境的稳定共享。
- SSHFS:基于 SSH 的用户态文件系统,轻量挂载远程目录,适合临时或按需挂载。
二 VirtualBox 设置共享文件夹
- 安装增强功能:启动虚拟机 → 菜单 设备 → 插入 Guest Additions CD 映像 → 挂载并运行安装脚本(常见为 VBoxLinuxAdditions.run)→ 重启。
- 添加共享文件夹:选中虚拟机 → 设置 → 共享文件夹 → 添加共享 → 指定主机路径与共享名称(如 shared),勾选 自动挂载 与 固定分配。
- 手动挂载与权限:
- 创建挂载点:
sudo mkdir -p /mnt/shared
- 挂载:
sudo mount -t vboxsf <共享名称> /mnt/shared
- 普通用户访问:将用户加入 vboxsf 组并重新登录:
sudo usermod -aG vboxsf $USER
- 常见自动挂载路径:部分发行版会自动挂载到 /media/sf_<共享名称>。
- 开机自动挂载:编辑 /etc/fstab,添加一行(共享名称为你在 VirtualBox 中设置的名称):
<共享名称> /mnt/shared vboxsf defaults 0 0
- 故障排查要点:确认 Guest Additions 安装成功、共享名称无误、挂载点存在;若提示无权限,检查用户是否在 vboxsf 组并已重新登录。
三 VMware 设置共享文件夹
- 安装工具:推荐安装 open-vm-tools(或 open-vm-tools-desktop 获取剪贴板/拖放等增强):
- Debian/Ubuntu:
sudo apt-get install open-vm-tools open-vm-tools-desktop
- RHEL/CentOS:
sudo yum install -y open-vm-tools
- 安装后建议重启。
- 添加共享文件夹:选中虚拟机 → VM → Settings → Options → Shared Folders → 添加共享 → 选择主机目录并启用 Always enabled。
- 挂载共享文件夹:
- 查看可用共享:
vmware-hgfsclient
- 挂载到 /mnt/hgfs:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
- 指定单个共享:
sudo vmhgfs-fuse .host:/<共享名称> /mnt/hgfs/<挂载点> -o allow_other
- 开机自动挂载:编辑 /etc/fstab,添加:
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0
- 提示:若 /mnt/hgfs 为空或不可访问,优先检查 open-vm-tools 是否安装、共享是否启用、以及是否使用了 fuse 挂载选项。
四 网络方式共享(SSH、Samba、NFS、SSHFS)
- SSH/SFTP/SCP(最简便、加密安全)
- 在虚拟机启用 SSH 服务:
sudo apt-get install openssh-server 或 sudo yum install openssh-server
- 拷贝示例:
- 主机→虚拟机:
scp /path/file user@<VM_IP>:/path/
- 虚拟机→主机:
scp user@<VM_IP>:/path/file /path/
- 同步:
rsync -avz /src/ user@<VM_IP>:/dst/
- Samba(Linux 与 Windows 互通)
- 安装:
sudo apt-get install samba 或 sudo yum install samba
- 配置 /etc/samba/smb.conf(示例):
[shared] path = /path/to/dir read only = no browsable = yes
- 设置 Samba 用户:
sudo smbpasswd -a <用户名>
- 启动服务:
sudo systemctl restart smbd
- Windows 访问:
\\<VM_IP>\shared
- NFS(Linux 与 Linux)
- 服务端(假设为主机):
sudo apt-get install nfs-kernel-server 或 sudo yum install nfs-utils
- 编辑 /etc/exports:
/path/to/dir <客户端IP>(rw,sync,no_subtree_check)
- 启动:
sudo systemctl restart nfs-kernel-server
- 客户端(虚拟机)挂载:
sudo mount <主机IP>:/path/to/dir /mnt/nfs
- SSHFS(基于 SSH 的 FUSE 挂载)
- 安装:
sudo apt-get install sshfs 或 sudo yum install sshfs
- 挂载:
sshfs user@<主机或VM_IP>:/remote/dir /mnt/sshfs
- 卸载:
fusermount -u /mnt/sshfs
五 常见问题与快速排查
- 权限不足或被拒绝
- VirtualBox:将用户加入 vboxsf 组并重新登录:
sudo usermod -aG vboxsf $USER
- VMware:挂载时使用 allow_other,确保当前用户对挂载点有访问权限。
- 挂载失败或找不到设备
- 确认增强工具已正确安装(Guest Additions/open-vm-tools)。
- 检查共享名称与挂载点路径是否一致;必要时手动挂载并观察报错信息。
- VirtualBox 若提示 No such device,尝试加载模块:
sudo modprobe vboxsf(常见于 CentOS/RHEL)。
- 图形文件管理器无法访问 /mnt/hgfs
- 在终端以管理员权限启动文件管理器(如
sudo nautilus),或改用命令行验证挂载是否成功。
- 性能优化
- 为虚拟机分配足够的 CPU/内存,并优化宿主机与虚拟机的资源与网络设置;大文件传输建议使用 SCP/rsync 或 NFS。