糯米犀牛 发表于 2024-10-19 18:43:11

Ubuntu 24.04使用virtualBox启动虚拟机提示Kernel driver not installed的

1.Ubuntu安装virtualBox


[*]系统版本:Ubuntu 24.04.1 LTS,内核版本:Linux 6.8.0-47-generic
[*]virtualBox官方下载对应ubuntu24.04系统的deb安装包
[*]进入到下载文件所在目录使用如下apt命令安装下载好的deb安装包
sudo apt install -f   ./virtualBox*
2. 启动虚拟机提示“Kernel driver not installed”

由于我装的是双系统,ubuntu挂载了windows下使用的硬盘便于节省空间,windows下已经安装了虚拟机,因此这里只需要注册近来就好了,但是在启动虚拟机的时候遇到了问题,如图:
按照提示执行了sudo /sbin/vboxconfig控制台信息提示同样的内容,只能从下面提示信息找解决办法了(其实我看出了关闭安全启动就可以解决),网络上找了很久有两个办法我用的第二个办法:
1.关闭bios安全启动

2.按照提示信息sign the kernel modules


[*]安装后续用的工具软件(一般这些工具已经安装了)
sudo apt install mokutil libssl-dev
[*]终端通过命令cd $(dirname $(modinfo -n vboxdrv))进入内核模块所在目录(省的后续切换目录,但是生成文件需要root)
[*]去掉内核模块文件压缩后缀,如果该目录文件是.ko.zst 结尾通过命令sudo zstd -d --rm vbox*改称.ko结尾(如果已经是.ko结尾则忽略)
[*]终端执行下面的命令(可能需要root)生成MOK 密钥
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Linux-6.8.0-47-ssl/"
[*]对内核模块进行签名(注意最后三个文件的目录是否正确),执行完后可以使用命令tail -c 28 vboxdrv.ko 查询是否已经签名,我的提示“~Module signature appended~”
点击查看代码sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der ./vboxdrv.ko
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der ./vboxnetadp.ko
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der ./vboxnetflt.ko
[*]添加MOK密钥( 注意密钥文件目录是否正确) 按照提示设置密码
sudo mokutil --import./MOK.der
[*]重启电脑进入MOK management 按照提示 (第二个,第三个,第二个) 输入密码进入系统,这时候启动虚拟机就可以了
每次更新内核需要重新签名
参考文章

[*] https://stackoverflow.com/questions/38437264/i-cant-execute-command-modprobe-vboxdrv

来源:https://www.cnblogs.com/lusa/p/18476035
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Ubuntu 24.04使用virtualBox启动虚拟机提示Kernel driver not installed的