You need to enable JavaScript to run this app. Ubuntu20.04开启Secure Boot安装VirtualBox6.1报vboxdrv加载失败
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04开启Secure Boot安装VirtualBox6.1报vboxdrv加载失败

问题说明

在无法关闭Secure Boot的Ubuntu 20.04.2系统上,为适配Laravel Homestead开发环境安装VirtualBox 6.1版本时,出现modprobe vboxdrv failed的加载报错,当前系统内核为5.8.0-44-generic,此前尝试保留Secure Boot的常规模块签名方案未生效。

核心报错根因

开启Secure Boot的环境下,未通过系统信任链验证的内核模块会被内核强制拦截加载。旧方案失效通常存在三个共性问题:未安装和当前5.8版本内核完全匹配的头文件、模块签名流程和Ubuntu的MOK信任机制不对齐、导入MOK密钥后未在重启引导阶段完成信任登记。

分步可落地解决流程
  • 补全模块编译所需的前置依赖
    执行命令安装对应内核的开发头文件与编译工具链,避免模块编译时出现版本不匹配:
    apt install linux-headers-$(uname -r) build-essential dkms
  • 重新生成专用MOK签名密钥
    执行命令生成独立的签名公私钥对,避免和历史残留的旧签名冲突:
    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VirtualBox Module Signing/"
  • 将公钥导入MOK信任列表
    执行导入命令,过程中按提示设置一个8位长度以内的临时校验密码(该密码仅在重启后的MOK引导界面使用,无需设置为系统登录密码):
    mokutil --import MOK.der
  • 对所有VirtualBox内核模块完成签名
    批量对vboxdrv、vboxnetflt、vboxnetadp、vboxpci四个核心模块执行签名操作:
    for mod in vboxdrv vboxnetflt vboxnetadp vboxpci; then /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 MOK.priv MOK.der /lib/modules/$(uname -r)/updates/dkms/$mod.ko; done
  • 重启完成MOK信任登记
    系统重启后会自动进入蓝色MOK管理界面,注意不要直接按任意键跳过倒计时,选择“Enroll MOK”选项,输入之前设置的临时密码完成密钥信任登记,之后正常进入系统。
  • 重新触发VirtualBox模块初始化
    进入系统后以root权限执行配置脚本,让系统自动完成模块的注册与加载:
    /sbin/vboxconfig
    最后执行modprobe vboxdrv验证模块是否加载成功。
常见踩坑提醒
  • 可执行sudo mokutil --list-enrolled查看已信任的MOK列表,若存在之前旧方案导入的、和VirtualBox相关的残留密钥条目,可先执行sudo mokutil --delete <对应密钥的哈希值>移除,避免新旧密钥冲突
  • 若批量签名时提示找不到对应模块文件,先执行dkms status检查vboxdrv模块是否在当前内核目录下完成安装,缺失则执行sudo dkms install vboxdrv/6.1.18补装模块
  • 若流程全部走完仍加载失败,可直接将VirtualBox升级到6.1.32及以上的小版本(该版本修复了对5.8系列内核的早期适配问题),替换安装包后重新走一遍上述签名流程即可,全程无需关闭Secure Boot。

内容的提问来源于stack exchange,提问作者Subhasish Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 19:54:08