我尝试在 Debian 11 Bullseye 下安装 VirtualBox 6.1。我按照教程这个答案到签署虚拟盒模块(vboxdrv、vboxnetflt、vboxnetadp、vboxpci)Centos 8。但是,我不允许禁用安全启动,因此我采用第二种方法。
首先,我创建私钥并在使用 mokutil 导入私钥后重新启动。我设置了密码,重新启动,按照步骤操作并按要求进行。这工作正常。
然后我尝试签署内核模块。这就是问题开始的地方:modinfo -n vboxdrv、vboxnetflt、vboxnetadp 未找到。我使用 find 命令查找内核模块,然后找到了它们(vboxdrv.ko
, vboxnetflt.ko
, vboxnetadp.ko
)。所以我对它们进行了签名,并使用 重新启动了它们systemctl
。
然后,第二个问题。当我开始时/sbin/vboxconfig
,它告诉我签署vboxdrv
、vboxnetflt
和vboxnetadp
模块。但我刚刚签了他们!
我再次执行modinfo -n vboxdrv
, vboxnetflt
, vboxnetadp
,在这里找到它们,但位于不同的目录下。我告诉自己这可能是一个错误,所以我重新启动,重新启动后,我收到一条错误消息,内容如下:
Failed to load options : Invalid Parameter
set_second_stage() failed : Invalid Parameter
Something has gone seriously wrong : shlm_init() failed : Invalid Parameter
我惊慌失措,进入 BIOS,检查了我的启动参数,但是没有改变参数由于没有任何改变,我重新启动。这次效果很好。于是我又去检查了modinfo -n vboxdrv
一遍vboxnetflt
,vboxnetadp
还是没有找到。
正如您所猜测的,现在循环了。当我开机时,如果不打开BIOS,就会再次输出错误,笔记本电脑无法启动。
另外,如果这有帮助,这里是结果dmesg | grep VirtualBox
:
[ 1.170571] integrity: Loaded X.509 cert 'VirtualBox: 'b9e568a3ad346<something_else>'
该mokutil --list-import
命令返回我创建的密钥作为第二个密钥,所以我会说它已正确加载和导入。
请帮助我,因为我找不到与此错误相关的任何其他主题,我没有更改任何启动参数,但我现在在启动时遇到这个讨厌的错误!
如果需要,我可以编辑我的问题以提供更多信息。
答案1
使用以下 mokutil 命令,我可以解决我的问题。
(in any directory, if you deleted your .der key file)
mokutil -l (check which key you want to delete)
mokutil --export (dumps the keys in numbered files, do NOT delete the wrong key)
mokutil --delete key_name_here (password prompt, note it somewhere)
reboot
重新启动时,您将收到类似于 secondary_stage() 的错误,但只需启动至 BIOS,不要更改任何内容,只需重新启动即可。系统将提示您使用 mokutil 菜单。
然而 VirtualBox 仍然没有签名。