温馨提示×

CentOS下VirtualBox如何升级VirtualBox软件

小樊
39
2025-11-29 15:26:58
栏目: 智能运维

CentOS 下升级 VirtualBox 的完整步骤

一 升级前准备

  • 备份重要数据,建议先关闭所有正在运行的虚拟机,避免升级内核模块时产生不一致状态。
  • 将系统与内核更新到最新,避免后续编译 vboxdrv 出现头文件不匹配:
    • 对于 CentOS 7sudo yum update -y
    • 对于 CentOS 8/Streamsudo dnf update -y
  • 安装编译所需依赖与内核头文件(确保与当前运行内核版本一致):
    • 对于 CentOS 7sudo yum groupinstall "Development Tools" -y && sudo yum install kernel-devel kernel-headers gcc make perl dkms -y
    • 对于 CentOS 8/Streamsudo dnf groupinstall "Development Tools" -y && sudo dnf install kernel-devel kernel-headers gcc make perl dkms -y
  • 建议先卸载旧版扩展包(Extension Pack),升级完成后再安装与新版本匹配的新扩展包,避免版本不一致导致功能异常。

二 升级方式

  • 方式 A 使用官方仓库进行升级(推荐,便于后续持续更新)
    1. 导入 Oracle VirtualBox 公钥(若已导入可跳过):
      • wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo rpm --import -
    2. 创建仓库文件(以 VirtualBox 7.1 为例,CentOS 7/8/Stream 通用):
      • sudo tee /etc/yum.repos.d/virtualbox.repo << 'EOF' [virtualbox] name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox baseurl=https://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc EOF
    3. 升级 VirtualBox(会自动替换旧版本):
      • CentOS 7:sudo yum update VirtualBox-7.1 -y
      • CentOS 8/Stream:sudo dnf update VirtualBox-7.1 -y
    4. 如系统存在旧内核,建议重启以加载新内核,再执行下一步重建内核模块。
  • 方式 B 使用 RPM 包离线升级
    1. 前往 Oracle 官方下载页面,选择对应的 Linux 发行版与架构VirtualBox-<版本>-<修订号>.rpm
    2. 安装/升级 RPM(会覆盖安装同一主版本):
      • sudo yum localinstall VirtualBox-<版本>-<修订号>.rpm -y(或 sudo dnf install ./VirtualBox-<版本>-<修订号>.rpm -y
    3. 若提示 GPG 签名问题,先导入公钥再安装(见方式 A 步骤 1)。

三 重建内核模块与验证

  • 重建 vboxdrv 内核模块(确保当前运行内核与已安装的 kernel-devel/headers 版本一致):
    • 推荐:sudo /sbin/vboxconfig
    • 如命令不存在或失败,可尝试:sudo /etc/init.d/vboxdrv setup
  • 重启系统或至少重启 VirtualBox 服务,使新内核模块生效:sudo systemctl restart vboxdrv(若单元存在)。
  • 验证版本:
    • 查看主机 VirtualBox 版本:VBoxManage --version
    • 查看内核模块状态:lsmod | grep vbox
  • 如遇到 “Kernel driver not installed (rc=-1908)” 等模块相关错误,优先检查:当前运行内核是否更新、kernel-devel/headers 是否匹配、是否安装了 dkms,然后重新执行重建模块步骤。

四 升级扩展包 Extension Pack(如已安装)

  • 扩展包需与 VirtualBox 主版本严格匹配。升级主机 VirtualBox 后,建议同步升级扩展包:
    1. 在虚拟机窗口菜单:设备 → 插入 Guest Additions CD 镜像(这是给虚拟机用的,与主机扩展包不同)。
    2. 主机上升级扩展包(示例,版本号请替换为与你 VirtualBox 一致的版本):
      • 先下载扩展包:例如 wget https://download.virtualbox.org/virtualbox/7.1.8/Oracle_VM_VirtualBox_Extension_Pack-7.1.8.vbox-extpack
      • 安装/升级扩展包:VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-7.1.8.vbox-extpack
  • 如需批量或自动化部署,可使用 --accept-license=... 参数静默接受许可(请阅读许可条款后再使用)。

五 常见问题与处理

  • 内核升级后 VirtualBox 启动报模块未加载:执行 sudo /sbin/vboxconfig 重建模块,必要时重启系统。
  • 编译增强功能失败(在虚拟机内):确保已安装 gcc kernel-devel kernel-headers dkms make 等依赖,再运行挂载的 VBoxLinuxAdditions.run 并重启虚拟机。
  • 升级后虚拟机无法启动或性能异常:优先确认扩展包版本与主程序一致,回退或升级扩展包至匹配版本;检查是否使用了较新的内核且已安装对应头文件。

0