Ubuntu 15.04 的内核头文件

Ubuntu 15.04 的内核头文件

今天我将 VM 14.10 升级到了 15.04。由于它是虚拟机(通过 VirtualBox),因此我需要安装客户机附加组件。但是,安装失败,提示(在/var/log/vboxadd-install.log):

错误!无法找到内核 3.16.0-31-generic 的内核头文件。

因此,我尝试以通常的方式安装它并得到:

软件包 linux-headers-3.16.0-31-generic 不可用,但另一个软件包引用了它。这可能意味着该软件包缺失、已被淘汰或只能从其他来源获得[.]

安装了,它应该提供正确的标题,但我感到很困惑。如果过时,linux-headers-generic我预料到会出现这种错误。但是……确实产生了:3.16.0-31dpkg -l | grep generic

...
ii linux-headers-3.19.0-17-通用...
...

啊哈!所以看起来客户添加正在尝试使用过时的内核。也许他们使用了uname。所以我尝试了一下uname -r,得到了:

3.16.0-31-通用


我的猜测是,客户添加功能正在用来uname获取所需的内核头版本,但uname无论出于什么原因,它都会给出错误的值。 问:如果我的分析正确,我该如何修复?如果不正确,问题出在哪里?


编辑:环顾四周后,似乎这意味着正在运行的内核实际上是3.16.0-31,而3.19.0-17仅仅是已安装sudo update-grub确认了 3.19 内核是第 0 个元素,/boot/grub/menu.lst并重新启动了,但似乎没有任何改变。

编辑:虽然/boot/grub/menu.lst是正确的(第 0 个条目是 3.19),但在重新启动并按住Shift以获取手动菜单时,我不是查看3.19内核,最上面的条目是3.16内核。

答案1

看起来从 14.10 升级到 15.04 的过程存在错误。内核无法正确安装。可以通过运行以下命令修复此问题:

sudo apt-get install linux-generic

这将拉取 linux-image-generic 和 linux-headers-generic。

这些元包始终指向最新的内核映像和标头。

这不是第一个提出此类问题的问题。

答案2

修复了我的问题:

uname -r
3.13.0-30-generic

sudo apt-get update
sudo apt-get dist-upgrade
reboot

uname -r
3.13.0-30-generic

??

sudo apt-get install linux-image-generic
sudo reboot

uname -r
3.19.0-18-generic

其次是:

sudo /etc/init.d/vboxdrv setup

相关内容