如何在启用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.mzph.cn/news/708419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Socket网络编程(二)——UDP快速入门

目录 UDP相关概念UDP是什么为什么不可靠UDP能做什么UDP包最大长度 UDP单播、广播、多播概念1. 单播、广播、多播模型图2. ip地址分类3. 子网掩码的作用:4. 广播地址5. 网段划分6. 变长子网掩码 UDP核心APIAPI-DatagramSocketDatagramSocket构造方法DatagramSocket常…

Debezium发布历史158

原文地址: https://debezium.io/blog/2023/08/29/debezium-2-4-beta1-released/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. Debezium 2.4.0.Beta1 Released August 29, 2023 by Chris Cranford …

6.5 共享数据

本节介绍Android的四大组件之一ContentProvider的基本概念和常见用法:首先说明如何使用内容提供器封装内部数据的外部访问接口,然后阐述如何使用内容解析器通过外部接口操作内部数据,最后叙述如何利用内容解析器读写联系人信息,以…

10_Vue

文章目录 Vue快速入门Vue的指令Vue的插值表达式V指令v-bind(单向绑定)v-model(双向绑定)v-on(事件监听)v-for(循环)v-text、v-htmlv-show(显示/隐藏)v-if&…

学习加密(三)spring boot 使用RSA非对称加密,前后端传递参数加解密

1.前面一篇是AES对称加密写了一个demo,为了后面的两者结合使用,今天去了解学习了下RSA非对称加密. 2.这是百度百科对(对称加密丶非对称加密)的解释: (1)对称加密算法在加密和解密时使用的是同一个秘钥。 (2)非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥…

了解GPT:ChatGPT的终极指南

在人工智能(AI)的世界里,有一颗冉冉升起的新星正在革命性地改变我们与机器的交互方式:ChatGPT。在本文中,我们将深入研究什么是ChatGPT,为什么底层技术GPT如此强大,以及它是如何实现其卓越功能的…

excel导出标准化

虽然标题叫标准化,只不过是我自己的习惯,当一件事情变得流程标准化之后,开发程序就会飞快,开发评估工作总是 搞个1~2天,实则前端后端一起开发,1个小时就可以搞定。 1 前端 const exportXls async () >…

C++重点---STL简介

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、STL简介 STL(Standard Template Library)是C标准库中的一个重要组成部分,它提供了…

iOS中卡顿产生的主要原因及优化思路

卡顿本质上是一个UI体验上的问题,而UI的渲染及显示,主要涉及CPU和GPU两个层面。若 CPUGPU渲染耗时超过16.7ms,就会在屏幕vsync信号到来时无法更新屏幕内容,进而导致卡顿。 iOS中UI渲染主要包含Layout->Draw->Prepare->Co…

MySQL5.7.44版本压缩包在Win11系统快速安装

一.背景 主要还是为了公司的带徒弟任务。我自己也喜欢MySQL的绿色版本。 1.软件版本说明 MySQL版本:5.7.44 压缩包版本,相当于绿色版。当然,你也可以使用window系统的Installer版本去安装。 操作系统:Win11家庭版 二.MySQL软…

electron-release-server部署electron自动更新服务器记录

目录 一、前言 环境 二、步骤 1、下载上传electron-release-server到服务器 2、宝塔新建node项目网站 3、安装依赖 ①npm install ②安装并配置postgres数据库 ③修改项目配置文件 ④启动项目 ⑤修改postgres的认证方式 ⑥Cannot find where you keep your Bower p…

spring6学习笔记

1.环境准备 1.idea建立一个空项目,jdk要求是17 2.Maven配置(和mybatis里一样) 3.新建一个模块 2.ocp原则 3.依赖倒置原则(DIP) 什么是依赖倒置原则? 1.面向接口编程,面向抽象编程,不要面向…

【React 报错】—Remove untracked files, stash or commit any changes, and try again.

【React 报错】—Remove untracked files, stash or commit any changes, and try again. 在react项目中通过.less文件进行样式定义,先暴露webpack配置文件,执行命令:yarn eject 或 npm run eject,报错如下: 原因是因…

oauth2.0是怎么使用的

OAuth 2.0 是一种用于授权的开放标准,允许用户授权第三方应用程序访问其受保护的资源,而无需将用户名和密码透露给第三方应用程序。下面是 OAuth 2.0 的一般使用方式: 注册应用程序: 第三方应用程序需要注册自己的应用程序&#x…

什么是大数据分析?大数据分析要学什么?

作为时下最火热的IT行业的词汇——大数据,它是指对规模庞大的数据库或者数据池进行挖掘、清理、分析的过程。大数据可以概括为5个V,数据量大(Volume)、速度快(Velocity)、类型多(Variety)、价值(Value)、真实性(Veracity)。通过对…

深度学习-CNN网络改进版LetNet5

深度学习-CNN网络改进版LetNet5 深度学习中,经典网络引领一波又一波的技术革命,从LetNet到当前最火的GPT所用的Transformer,它们把AI技术不断推向高潮。 用pytorch构建CNN经典网络模型改进版LetNet5,还可以用数据进行训练模型&a…

【清理mysql数据库服务器二进制日志文件】

清理前后比对 清理前占用 86% : 清理后占用 29% : 排查占用磁盘较大的文件 检测磁盘空间占用 TOP 10 # 检测磁盘空间占用 TOP 10 $ sudo du -S /var/log/ | > sort -rn | # -n选项允许按数字排序。-r选项会先列出最大数字(逆序&#x…

vue中 input disable后无法触发点击事件

问题:input标签为disabled后,点击事项无效;当点击文字**“请选择”**时无法触发点击事件,其父标签的其余位置均可触发 解决:只需要在input标签中添加 style“pointer-events:none” 即可 pointer-events: none 作用是…

如何刷新 DNS 缓存 (macOS, Linux, Windows)

如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 请访问原文链接:https://sysin.org/blog/how-to-flush-dns-cache/,查看最新版。原创作品,转载…

字节面试问题

实现三列布局的方法 第一种&#xff1a;可以使用浮动margin 第二种&#xff1a;浮动BFC <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…