Ubuntu Linux内核更新后VirtualBox无法启动的解决办法

本文介绍了一种常见的情况,即在Ubuntu系统更新后,VirtualBox出现内核模块未安装的问题。文中详细记录了解决步骤,包括安装必要的Linux内核头文件、重新编译VirtualBox内核模块等。
From 独自等待blog
几天由于更新玩乐网站不开自己的Linux电脑,今天开了,看了一下这期间Ubuntu的更新,一堆!想都没想就开始更新了。更新倒是一切顺利。后 来开VirtualBox,居然蹦出个错误来:
VirtualBox kernel driver not installed. The vboxdrv kernel module was either not loaded or /dev/vboxdrv was not created for some reason. Re-setup the kernel module by executing ‘/etc/init.d/vboxdrv setup’ as root.
VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED).
Result Code: 0×80004005
Component: Console
Interface: IConsole
{1dea5c4b-0753-4193-b909-22330f64ec45}
提示说在终端里输入
sudo /etc/init.d/vboxdrv setup
仍然不行。给的信息是
Stopping VirtualBox kernel module: vboxdrv.
Recompiling VirtualBox kernel module: vboxdrv
* Look at /var/log/vbox-install.log to find out what went wrong
打开/var/log/vbox-install.log文件,上书:
cp:missing destination file operand after “/tmp/vbox.0/Module.symvers”
请尝试执行”cp –help”来获取更多信息。
Makefile:73: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again.。 停止。
貌似是更新的时候升级了Linux kernel,所以vboxdrv需要重新编译。因为是从源里面直接更新的,没有Linux kernel的源文件,显然编译需要这些源文件。逛了几个 论坛 ,说解决方法如下:
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install linux-restricted-modules-$(uname -r)
sudo /etc/init.d/vboxdrv setup
果然,终端提示编译通过了
* Stopping VirtualBox kernel module vboxdrv [ OK ]
* Recompiling VirtualBox kernel module vboxdrv [ OK ]
* Starting VirtualBox kernel module vboxdrv [ OK ]
启动VirtualBox,一切正常了。
Linux 更新 HWE 内核后系统卡死的问题可能由多种因素引起,包括硬件兼容性、驱动冲突、内核模块加载失败或磁盘空间不足等。以下是几种常见的解决方法及详细操作步骤: ### 1. 进入恢复模式并清理磁盘空间 如果系统卡死在启动界面(如 `/dev/nvme/n6p7: clean` 提示),可能是由于磁盘空间已满,导致系统无法正常加载[^2]。此时可以尝试以下步骤: - 重启系统,进入 **Recovery Mode**(在 GRUB 启动菜单中选择高级选项,再选择恢复模式)。 - 在 Recovery Menu 中选择 **Drop to root shell prompt**。 - 使用 `df -lh` 检查磁盘使用情况。 - 删除不必要的文件,例如旧的内核镜像、临时文件或编译生成的文件。 - 如果你之前编译过内核源码,可以进入源码目录执行 `make clean` 来清除构建产物。 - 最后执行 `reboot` 重启系统。 ### 2. 回滚到旧版本内核 如果新安装的 HWE 内核(如 5.19)与硬件存在兼容性问题(如 MT7922 网卡驱动问题)[^1],可以尝试回滚到默认内核版本: - 在 GRUB 启动菜单中选择 **Advanced options for Ubuntu**。 - 选择一个旧版本的内核(如 5.13 或 5.11)启动。 - 登录系统后卸载 HWE 内核: ```bash sudo apt remove linux-generic-hwe-20.04 ``` - 更新 GRUB 配置并重启: ```bash sudo update-grub sudo reboot ``` ### 3. 更新或重新安装 NVIDIA 驱动 如果系统卡死发生在图形界面启动阶段,可能是由于 NVIDIA 驱动与新内核不兼容导致的。可以尝试在恢复模式下重新安装或修复 NVIDIA 驱动[^5]: - 进入恢复模式,切换到 root shell。 - 卸载当前的 NVIDIA 驱动: ```bash sudo apt purge nvidia-* ``` - 重新安装适用于当前内核的 NVIDIA 驱动: ```bash sudo apt install nvidia-driver-535 ``` - 更新 initramfs 和 GRUB: ```bash sudo update-initramfs -u sudo update-grub ``` - 重启系统: ```bash sudo reboot ``` ### 4. 禁用或更新第三方内核模块 某些第三方内核模块(如 VirtualBox、Docker、ZFS 等)可能与新内核不兼容,导致系统启动失败。可以尝试在恢复模式下禁用或更新这些模块: - 进入恢复模式,切换到 root shell。 - 查看当前加载的内核模块: ```bash lsmod ``` - 禁用特定模块(以 VirtualBox 为例): ```bash sudo modprobe -r vboxdrv ``` - 卸载并重新安装最新版本的模块工具: ```bash sudo apt remove virtualbox-dkms sudo apt install virtualbox-dkms ``` - 更新 initramfs 并重启: ```bash sudo update-initramfs -u sudo reboot ``` ### 5. 检查并修复系统包冲突 如果系统更新过程中出现中断或包冲突,可能导致内核无法正常加载。可以尝试修复系统包: - 进入恢复模式,切换到 root shell。 - 执行以下命令修复损坏的包: ```bash sudo apt --fix-broken install ``` - 清理 apt 缓存并重新安装关键系统组件: ```bash sudo apt clean sudo apt install --reinstall ubuntu-desktop sudo apt install --reinstall linux-generic ``` - 更新 GRUB 和 initramfs: ```bash sudo update-grub sudo update-initramfs -u ``` - 重启系统: ```bash sudo reboot ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值