当前位置: 首页 > news >正文

如何在启用Secure Boot的Ubuntu 22.04电脑中安装使用VirtualBox 6.1

我使用的是华为Matebook X Pro笔记本电脑,默认开启了UEFI安全引导(UEFI Secure Boot),安装了Windows和Ubuntu双操作系统,平时基本上都是使用Ubuntu 22.04(Linux Mint 21.3),使用上也没有碰到什么问题,最近因为要使用虚拟机,发现在Windows系统中可以正常使用Virtualbox,但无法在Ubuntu中使用VirtualBox软件,启动虚拟机就报错,错误跟Secure Boot相关,查询了一下资料,找到了解决办法。

UEFI安全引导(UEFI Secure Boot)是PC制造商开发的一种安全标准,旨在帮助保护计算机免受恶意软件的攻击。它限制系统只能使用注册到系统固件中的模块进行引导。这意味着在引导过程中运行的所有软件和驱动程序都需要注册和验证。虽然可以通过禁用UEFI Secure Boot来解决Virtualbox的启动问题,但是我也想尝试启用Secure Boot的情况下安装使用Virtualbox;如果我们要进行安全引导,解决办法是对VirtualBox模块进行签名。这包括生成一个密钥对,将密钥注册到系统的固件中,并对VirtualBox模块进行签名。根据查询网络资料,执行这个操作一般需要三个步骤:


1、生成密钥对

要生成密钥对,请使用openssl命令,如下所示:

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/

此命令生成一个新的RSA密钥对(MOK.priv和MOK.der)。“-days 36500”选项将密钥设置为100年后过期,“-subj”选项为密钥设置描述性通用名称。

2、注册密钥

要在系统固件中注册密钥,请按如下方式使用mokutil命令:

sudo mokutil --import MOK.der

此命令将密钥导入机器所有者密钥(MOK)数据库,该数据库是系统信任的密钥列表。

3、对VirtualBox模块进行签名

要对VirtualBox模块进行签名,请使用以下命令:

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxnetflt)sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxnetadp)
这些命令使用您的密钥对VirtualBox内核模块(vboxdrv、vboxnetflt和vboxnetadp)进行签名。

但是在实际的Ubuntu 22.04操作系统中已经为我们生成了RSA密钥对(MOK.priv和MOK.der),位于Ubuntu操作系统的/var/lib/shim-signed/mok目录中,我们需要做的就是第二步注册秘钥,进入上述目录执行命令:

sudo mokutil --import MOK.der

执行命令后,按照提示要求设定注册秘钥的密码,然后通过sudo reboot重启动电脑,重启过程中华为的笔记本电脑就提示设定UEFI Secure Boot,按照提示要求选择第一项,输入刚才设定的密码就在BIOS中注册成功了。进入操作系统后通过执行以下命令来检查注册情况:

sudo mokutil --test-key /var/lib/shim-signed/mok/MOK.der 2

如果提示以下信息,表示已经注册成功:

/var/lib/shim-signed/mok/MOK.der is already enrolled

最后执行配置程序,也就替代是前面所述的第三步的内容,命令为:

sudo /sbin/vboxconfig

如果,提示如下信息:

vboxdrv.sh: Stopping VirtualBox services.

vboxdrv.sh: Starting VirtualBox services.

vboxdrv.sh: Building VirtualBox kernel modules.

vboxdrv.sh: Signing VirtualBox kernel modules.

表示配置成功,就可以启动并正常使用VirtualBox 6.1软件了。

http://www.lryc.cn/news/307794.html

相关文章:

  • 基于B/S+MySQL+Tomcat开发的旅游信息管理系统
  • mac m3安装nvm安装说明;mac安装xbrew
  • 【小沐学QT】QT学习之Web控件的使用
  • word embedding
  • 原码,反码,补码
  • 科技赋能,MTW400A为农村饮水安全打通“最后一公里”
  • 测试计划、测试方案、测试策略、测试用例的区别
  • c# 异常处理
  • (delphi11最新学习资料) Object Pascal 学习笔记---第6章第3节(传递字符串作为参数)
  • k8s节点负载使用情况分析命令kubectl describe node [node-name]
  • 自动驾驶加速落地,激光雷达放量可期(上)
  • 变量的间接引用
  • 学习JAVA的第六天(基础)
  • LeetCode 2673.使二叉树所有路径值相等的最小代价:自顶向下的DFS 或 自底向上的递推
  • 9、电源管理入门之CPU Idle
  • uniapp的扩展组件uni-popup 弹出层自动打开
  • 二、mysql常用函数
  • 【Redis | 第一篇】快速了解Redis
  • Vim 模式切换 | 命令集
  • 广和通5G智能模组SC171支持Android、Linux和Windows系统,拓宽智能物联网应用
  • 【51单片机】红外遥控红外遥控电机调速(江科大)
  • kubesphere jenkins 流水线 未运行(解决方案)
  • 如何保护服务器的安全
  • Python使用HDL 模拟器实现 FPGA 板卡的仿真验证
  • vue中 input disable后无法触发点击事件
  • 实战一个 Jenkins 构建 CI/CD流水线 的简单配置过程哈
  • 【InternLM 实战营笔记】大模型评测
  • 数据卷(Data Volumes) 自定义镜像(dockerfile)
  • 数据库管理-第156期 Oracle Vector DB AI-07(20240227)
  • CASAtomic原子操作详解