网站建设 引导,网站地图html模板,学编程有什么好处,扶余市建设局网站我使用的是华为Matebook X Pro笔记本电脑#xff0c;默认开启了UEFI安全引导#xff08;UEFI Secure Boot#xff09;#xff0c;安装了Windows和Ubuntu双操作系统#xff0c;平时基本上都是使用Ubuntu 22.04#xff08;Linux Mint 21.3#xff09;#xff0c;使用上也…我使用的是华为Matebook X Pro笔记本电脑默认开启了UEFI安全引导UEFI Secure Boot安装了Windows和Ubuntu双操作系统平时基本上都是使用Ubuntu 22.04Linux 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软件了。