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

news/2024/10/19 17:53:42

1.Ubuntu安装virtualBox

  • virtualBox官方下载对应ubuntu24.04系统的deb安装包
  • 进入到下载文件所在目录使用如下apt命令安装下载好的deb安装包
    sudo apt install -f ./virtualBox*

2. 启动虚拟机提示“Kernel driver not installed”

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

1.关闭bios安全启动

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

  1. 安装后续用的工具软件(一般这些工具已经安装了)
    sudo apt install mokutil libssl-dev

  2. 终端通过命令cd $(dirname $(modinfo -n vboxdrv))进入内核模块所在目录(省的后续切换目录,但是生成文件需要root)

  3. 去掉内核模块文件压缩后缀,如果该目录文件是.ko.zst 结尾通过命令sudo zstd -d --rm vbox*改称.ko结尾(如果已经是.ko结尾则忽略)

  4. 终端执行下面的命令(可能需要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/"

  5. 对内核模块进行签名(注意最后三个文件的目录是否正确),执行完后可以使用命令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
  1. 添加MOK密钥( 注意密钥文件目录是否正确) 按照提示设置密码
    sudo mokutil --import ./MOK.der

  2. 重启电脑进入MOK management 按照提示 (第二个,第三个,第二个) 输入密码进入系统,这时候启动虚拟机就可以了

每次更新内核需要重新签名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/73520.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

公司网站怎么修改类目?新建网站如何修改模板?

登录后台管理:通常需要通过浏览器访问网站的管理后台地址,使用管理员账号登录。进入类目管理:在后台找到“类目管理”或“分类管理”的选项,点击进入。编辑现有类目:选择需要修改的类目,点击编辑按钮。 修改类目的名称、描述等信息。 保存更改。添加新类目:点击“添加类…

07索引

索引索引失效的情况所查找的数据在索引中都有就叫覆盖索引所以当使用select *时非常容易出现回表查询,性能就会降低前缀取多少个,取决于需求,根据需求确定选择性 选择性不重复的个数/总数 使用前缀索引可以降低索引体积,提高索引效率

08SQL优化

SQL优化InnoDB引擎的三大特性,事务,外键,行级锁。 执行更新的时候,where更新的条件一定要有索引,如果没有索引就会出现行锁升级为表锁,并且索引不能失效否则也会出现行锁升级为表锁,一但升级为表锁并发性能就会降低。

500人的开发团队叫什么

一个500人的开发团队通常被称为大型开发团队、企业级开发团队、跨国开发团队。在这种规模的团队中,管理和协调变得非常复杂,需要有效的沟通、明确的角色分配以及高效的项目管理工具。大型开发团队通常会被进一步划分为多个子团队,每个子团队专注于不同的项目或模块,从而提高…

@Resource注解和@Autowired注解的区别

@Autowired注解是Spring提供的,而@Resource注解是J2EE本身提供的;@Autowird注解默认通过byType方式注入,而@Resource注解默认通过byName方式注入;@Autowired注解注入的对象需要在IOC容器中存在,否则需要加上属性required=false,表示忽略当前要注入的bean。一、@Resource注…