在 CentOS 上配置 VirtualBox 的完整步骤
一 环境准备与依赖
- 确认系统版本与架构:建议使用 CentOS 7/8 Stream,并确保为 x86_64。
- 启用 EPEL 仓库(CentOS 7 常用):
sudo yum install -y epel-release
- 安装编译与内核开发依赖(构建 vboxdrv 必需):
sudo yum install -y gcc make perl kernel-devel kernel-headers dkms
- 确认内核版本一致性(两者版本号需完全一致):
uname -r
ls /usr/src/kernels/
如不一致,先升级内核并重启:sudo yum update kernel && sudo reboot
- 在 BIOS 中开启虚拟化支持(VT-x/AMD-V),否则虚拟机性能与兼容性会受限。
二 安装 VirtualBox
- 方式 A(推荐)添加 Oracle 官方 YUM 源并安装:
- 创建源文件:
sudo tee /etc/yum.repos.d/virtualbox.repo <<‘EOF’
[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever/$basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox_2016.asc
EOF
- 安装 VirtualBox(会自动选择最新版):
sudo yum clean all && sudo yum install -y VirtualBox
- 方式 B 使用已下载的 RPM 包:
sudo yum localinstall -y VirtualBox-*.rpm
- 安装完成后重建内核模块并启动服务:
sudo /sbin/vboxconfig
或
sudo systemctl start vboxdrv && sudo systemctl enable vboxdrv
三 基础配置与用户权限
- 将需要使用 VirtualBox 的用户加入 vboxusers 组(替换 your_user 为实际用户名):
sudo usermod -a -G vboxusers your_user
加入后需重新登录或重启会话以生效。
- 验证安装与版本:
VBoxManage -v
- 创建与管理虚拟机(示例):
- 新建:
VBoxManage createvm --name vm1 --ostype RedHat_64 --register --basefolder /data/VirtualBoxVMs/
- 配置资源:
VBoxManage modifyvm vm1 --cpus 2 --memory 2048 --vram 128
- 网络(NAT 便于上网,桥接需指定宿主机网卡):
VBoxManage modifyvm vm1 --nic1 nat
桥接示例(将 enp2s0f0 替换为你的实际网卡名):
VBoxManage modifyvm vm1 --nic1 bridged --bridgeadapter1 enp2s0f0
- 存储(以 ISO 安装系统):
VBoxManage storagectl vm1 --name “SATA Controller” --add sata --controller IntelAHCI
VBoxManage storageattach vm1 --storagectl “SATA Controller” --port 0 --device 0 --type dvddrive --medium /path/to/CentOS-7-x86_64-Minimal-2009.iso
- 启动:
VBoxManage startvm vm1 --type headless
四 无头运行与远程访问
- 启用远程桌面(VRDE,RDP 端口):
VBoxManage modifyvm vm1 --vrde on
VBoxManage modifyvm vm1 --vrdeport 3389
使用 RDP 客户端连接宿主机的 3389 端口即可访问虚拟机控制台。
- 常用无头控制命令:
启动:VBoxManage startvm vm1 --type headless
关机:VBoxManage controlvm vm1 poweroff
暂停/恢复:VBoxManage controlvm vm1 pause | resume
- 如需在宿主机本地图形界面管理,可直接运行:virtualbox(需桌面环境)。
五 常见问题与排错
- 报错 “Kernel driver not installed (rc=-1908)”:
- 安装匹配当前运行内核的 kernel-devel 并重建模块:
sudo yum install -y kernel-devel-$(uname -r)
sudo /sbin/vboxconfig
- 若仍失败,重启后再执行重建。
- 构建内核模块时报 “unable to find the sources of your current Linux kernel”:
说明未安装或未匹配到正确的 kernel-devel/kernel-headers,请按上文安装对应版本并重启。
- 桥接网卡不生效:
使用 VBoxManage modifyvm --nic1 bridged --bridgeadapter1 <实际网卡名> 指定物理网卡;可用 ip link 查看网卡名。
- 增强功能与共享文件夹(在客户机内操作):
- 在客户机中挂载增强功能镜像并安装:
sudo mkdir -p /media/cdrom
sudo mount /dev/cdrom /media/cdrom
sudo /media/cdrom/VBoxLinuxAdditions.run
- 共享文件夹(宿主机执行,客户机以 root 挂载):
VBoxManage sharedfolder add vm1 --name share --hostpath /home/user/share
客户机:sudo mount -t vboxsf share /mnt/share
- 版本查询与扩展包:
查询已安装扩展包:VBoxManage list extpacks
安装扩展包(增强功能、USB 2.0/3.0、RDP 等):VBoxManage extpack install /path/Oracle_VM_VirtualBox_Extension_Pack-.vbox-extpack。