在 CentOS 的 VirtualBox 中设置共享文件夹
一 准备与安装增强功能
- 在虚拟机窗口中安装增强功能:设备 → 安装增强功能(VBoxGuestAdditions)。若提示运行软件,选择运行并输入 root 密码。安装完成后重启虚拟机。
- 安装编译依赖(增强功能需要内核头文件与编译工具):
- CentOS 7/8:sudo yum install -y gcc gcc-c++ make kernel-devel kernel-headers
- CentOS Stream 8/9:sudo dnf install -y gcc gcc-c++ make kernel-devel kernel-headers
- 若安装增强功能时报错如 “Kernel headers not found for target kernel …”,请先升级内核并安装对应版本的 kernel-devel,然后重启再安装增强功能:
- 查看内核:uname -r
- 安装匹配版本:sudo yum/dnf install -y kernel-devel-$(uname -r) 或先升级内核再装对应 devel
- 重启后再执行增强功能安装脚本
二 配置共享文件夹
- 在 VirtualBox 管理器中选中虚拟机 → 设置 → 共享文件夹 → 添加共享文件夹:
- 文件夹路径:选择宿主机上的目录(如 Windows 的 D:\share 或 Linux 主机的 /home/user/share)
- 共享名称:仅使用英文与数字,避免空格(如 shared)
- 勾选 自动挂载 与 固定分配(便于每次启动自动挂载)
- 确认后启动虚拟机
三 在 CentOS 中挂载与验证
- 创建挂载点:sudo mkdir -p /mnt/shared
- 手动挂载:sudo mount -t vboxsf <共享名称> /mnt/shared(例如:sudo mount -t vboxsf shared /mnt/shared)
- 验证:ls /mnt/shared 应能看到宿主机共享目录中的文件
- 卸载:sudo umount /mnt/shared
四 开机自动挂载与权限配置
- 使用 fstab 自动挂载(推荐):编辑 /etc/fstab,添加一行
- 共享名称 /mnt/shared vboxsf rw,gid=100,uid=1000,auto 0 0
- 说明:将 uid/gid 替换为实际用户(id 命令可查看),保存后执行 sudo mount -a 测试
- 让普通用户可访问:
- 将用户加入 vboxsf 组:sudo usermod -a -G vboxsf $USER
- 重新登录或重启后生效
- 若使用 VirtualBox 的自动挂载,部分版本会在 /media/sf_<共享名称> 自动创建挂载点,但默认仅 root 可访问;建议按上文自建挂载点并配合 vboxsf 组权限使用
五 常见问题与排查
- 报错 “No such device” 或模块未加载:执行 sudo modprobe vboxsf;若仍失败,多为增强功能未正确安装或内核版本不匹配,回到第一节重装增强功能并核对内核与 devel 版本一致
- 权限被拒绝或只能 root 访问:确认已把当前用户加入 vboxsf 组并重新登录;必要时检查挂载选项 uid/gid 是否正确
- 自动挂载失败:检查 /etc/fstab 拼写与共享名称是否一致,执行 mount -a 观察报错;也可先手动挂载验证后再写入 fstab
- 增强功能安装失败:安装 gcc、make、perl 等构建工具,并确保已安装与当前运行内核匹配的 kernel-devel 与 kernel-headers