温馨提示×

VirtualBox如何实现Debian与主机文件共享

小樊
43
2026-01-03 08:03:47
栏目: 云计算

VirtualBox实现Debian与主机文件共享

一 共享文件夹步骤

  • 在宿主机创建要共享的目录,例如:D:\shared
  • 选中虚拟机 → 设置 → 共享文件夹 → 添加共享文件夹:
    • 文件夹路径:选择 D:\shared
    • 共享名称(Folder Name):自定义,例如 shared
    • 勾选 自动挂载固定分配(便于重启后仍然可用)。
  • 启动 Debian,安装增强功能(Guest Additions):设备 → 安装增强功能,挂载 ISO 后在终端执行:
    • 安装编译依赖:sudo apt-get update && sudo apt-get install -y build-essential dkms linux-headers-$(uname -r)
    • 运行安装脚本:sudo sh /media/cdrom/VBoxLinuxAdditions.run
    • 重启:sudo reboot
  • 创建挂载点并挂载:
    • sudo mkdir -p /mnt/shared
    • sudo mount -t vboxsf shared /mnt/shared
      完成后,/mnt/shared 与宿主机的 D:\shared 内容双向可见。

二 自动挂载与权限设置

  • 推荐在 /etc/fstab 增加一行实现开机自动挂载(将共享名称与挂载点替换为你的实际值):
    • shared /mnt/shared vboxsf rw,gid=1000,uid=1000,auto 0 0
      说明:gid/uid 请设为你的日常登录用户(id 命令可查),这样挂载后对该目录具有合适的读写权限。
  • 若不想使用 fstab,也可保持“自动挂载”勾选,增强功能会在登录会话中自动挂载到 /media/sf_<共享名称>(该目录默认仅 root 与 vboxsf 组可访问;如需普通用户访问,可将用户加入 vboxsf 组:sudo usermod -aG vboxsf $USER,然后重新登录)。
  • 注意:共享文件夹的“名称”不要与挂载点目录名相同,否则可能出现 Protocol error

三 常见问题与排查

  • 挂载失败或提示找不到 vboxsf:多因未安装增强功能或缺少内核头文件/编译工具,先执行:sudo apt-get install -y build-essential dkms linux-headers-$(uname -r),再运行 VBoxLinuxAdditions.run 并重启。
  • 权限不足或只能 root 访问:将当前用户加入 vboxsf 组(sudo usermod -aG vboxsf $USER),或使用 fstab 指定 uid/gid
  • 提示 Protocol error:检查共享“名称”与挂载点是否同名,或是否勾选了自动挂载后重复手动挂载。
  • 宿主机为 Linux 时的补充:若使用较新内核,优先安装 dkms 与对应内核头文件,确保 vboxsf 内核模块能随内核升级自动重建。

四 其他可选方案

  • SCP/SFTP:在 Debian 启用 SSH 服务(sudo systemctl enable --now ssh),宿主机用 scp/WinSCP 在主机与虚拟机间复制文件,适合跨网络或脚本化传输。
  • Samba/CIFS:宿主机开启 SMB 共享,Debian 中挂载:sudo mount -t cifs //<宿主机IP>/<共享名> /mnt/share -o user=<用户名>,pass=<密码>。
  • NFS:宿主机配置 NFS 服务器,Debian 作为客户端挂载:sudo mount <宿主机IP>:/<共享目录> /mnt/nfs。
    以上方式无需 Guest Additions,适合特定网络与权限模型。

0