通过 apt-get 设置 virtualbox 后,我遇到了一个错误
~# sudo systemctl status vboxdrv
● vboxdrv.service - VirtualBox Linux kernel module
Loaded: loaded (/usr/lib/virtualbox/vboxdrv.sh; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mi 2017-01-18 14:23:55 UTC; 1min 17s ago
Process: 22299 ExecStart=/usr/lib/virtualbox/vboxdrv.sh start (code=exited, status=1/FAILURE)
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: vboxdrv.sh: Starting VirtualBox services.
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: vboxdrv.sh: Building VirtualBox kernel modules.
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: dpkg-query: Kein Pfad gefunden, der auf Muster /lib/modules/4.4.0-042stab113.11/kernel passt
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: This system is not currently set up to build kernel modules (system extensions).
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: Running the following commands should set the system up correctly:
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: apt-get install -headers-4.4.0-042stab113.11
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: (The last command may fail if your system is not fully updated.)
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: apt-get install -headers
Jan 18 14:23:55 HOSTNAME vboxdrv.sh[22299]: vboxdrv.sh: failed: Look at /var/log/vbox-install.log to find out what went wrong.`
它告诉我执行
~# apt-get install -headers-4.4.0-042stab113.11
E: Command line option 'e' [from -headers-4.4.0-042stab113.11] is not understood in combination with the other options.
~# apt-get install -headers
E: Command line option 'e' [from -headers] is not understood in combination with the other options.
日志文件:
~# cat /var/log/vbox-install.log
Makefile:185: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.
[for each time i've tried]
/lib/modules/4.4.0-042stab113.11/ 中没有名为“kernel”的文件夹,而我实际上期望如此。
那么,我该如何解决这个错误?
This system is not currently set up to build kernel modules (system extensions)
有任何想法吗?
这是我目前所做的:
现在,这是我的输出。
~# sudo apt-get 安装 linux-headers-4.4.0-042stab113.11 Paketlisten 已发布... Fertig 平衡表将得到执行。 状态信息已输入.... Fertig E:无法生成软件包 linux-headers-4.4.0-042stab113.11。 E:已安装 »linux-headers-4.4.0-042stab113.11« 的会员将不会收到任何包裹。 E:中级常规打印 »linux-headers-4.4.0-042stab113.11« 未生成任何包裹。
无法找到软件包 linux-headers-4.4.0-042stab113.1
~# sudo apt-get 安装 linux-headers Paketlisten 已发布... Fertig 平衡表将得到执行。 状态信息已输入.... Fertig Paket linux-headers 是一个虚拟的包,其内容来自: Linux-headers-4.4.0-1001-aws 4.4.0-1001.10 linux-headers-4.8.0-34-低延迟 4.8.0-34.36~16.04.1 linux-headers-4.8.0-34-通用 4.8.0-34.36~16.04.1 linux-headers-4.8.0-32-低延迟 4.8.0-32.34~16.04.1 linux-headers-4.8.0-32-通用 4.8.0-32.34~16.04.1 linux-headers-4.8.0-30-低延迟 4.8.0-30.32~16.04.1 linux-headers-4.8.0-30-通用 4.8.0-30.32~16.04.1 linux-headers-4.8.0-28-低延迟 4.8.0-28.30~16.04.1 linux-headers-4.8.0-28-通用 4.8.0-28.30~16.04.1 Linux 标头-4.4.0-59-低延迟 4.4.0-59.80 Linux 头文件 4.4.0-59-通用 4.4.0-59.80 linux-headers-4.4.0-57-低延迟 4.4.0-57.78 linux-headers-4.4.0-57-通用 4.4.0-57.78 linux-headers-4.4.0-53-低延迟 4.4.0-53.74 linux-headers-4.4.0-53-通用 4.4.0-53.74 linux-headers-4.4.0-51-低延迟 4.4.0-51.72 linux-headers-4.4.0-51-通用 4.4.0-51.72 linux-headers-4.4.0-47-低延迟 4.4.0-47.68 linux-headers-4.4.0-47-通用 4.4.0-47.68 linux-headers-4.4.0-45-低延迟 4.4.0-45.66 linux-headers-4.4.0-45-通用 4.4.0-45.66 linux-headers-4.4.0-43-低延迟 4.4.0-43.63 linux-headers-4.4.0-43-通用 4.4.0-43.63 linux-headers-4.4.0-42-低延迟 4.4.0-42.62 linux-headers-4.4.0-42-通用 4.4.0-42.62 linux-headers-4.4.0-38-低延迟 4.4.0-38.57 linux-headers-4.4.0-38-通用 4.4.0-38.57 linux-headers-4.4.0-36-低延迟 4.4.0-36.55 linux-headers-4.4.0-36-通用 4.4.0-36.55 linux-headers-4.4.0-34-低延迟 4.4.0-34.53 linux-headers-4.4.0-34-通用 4.4.0-34.53 linux-headers-4.4.0-31-低延迟 4.4.0-31.50 linux-headers-4.4.0-31-通用 4.4.0-31.50 linux-headers-4.4.0-28-lowlatency 4.4.0-28.47 linux-headers-4.4.0-28-通用 4.4.0-28.47 linux-headers-4.4.0-24-低延迟 4.4.0-24.43 linux-headers-4.4.0-24-通用 4.4.0-24.43 linux-headers-4.4.0-22-低延迟 4.4.0-22.40 linux-headers-4.4.0-22-通用 4.4.0-22.40 linux-headers-4.4.0-21-低延迟 4.4.0-21.37 linux-headers-4.4.0-21-通用 4.4.0-21.37 您必须说明选择安装方式。 E: 对于 »linux-headers« 包,没有安装请求。
它是由...提供的虚拟包,选择一个明确的包进行安装。
~# apt-get 安装 linux-headers-4.4.0-42-generic Paketlisten 已发布... Fertig 平衡表将得到执行。 状态信息已输入.... Fertig linux-headers-4.4.0-42-generic 已经是最新版本 (4.4.0-42.62)。 0 已更新、0 新安装、0 提交且 0 未更新。
已经更新。
~# sudo apt-get 升级 Paketlisten 已发布... Fertig 平衡表将得到执行。 状态信息已输入.... Fertig 已将 Paketaktualisierung (Upgrade) 设置为... Fertig 0 已更新、0 新安装、0 提交且 0 未更新。
这里要注意
~# sudo apt-get 安装 linux-headers-$(uname -r) Paketlisten 已发布... Fertig 平衡表将得到执行。 状态信息已输入.... Fertig E:无法生成软件包 linux-headers-4.4.0-042stab113.11。 E:已安装 »linux-headers-4.4.0-042stab113.11« 的会员将不会收到任何包裹。 E:中级常规打印 »linux-headers-4.4.0-042stab113.11« 未生成任何包裹。
无法找到软件包 linux-headers-4.4.0-042stab113.11。
答案1
从 virtualbox网站
对于基于 Debian 和 Ubuntu 的发行版,您必须安装正确版本的 linux-headers,通常是 linux-headers-generic 、 linux-headers-amd64 、 linux-headers-i686 或 linux-headers-i686-pae 中与内核版本名称最匹配的版本;如果存在 linux-kbuild 包。基本 Ubuntu 版本应该默认安装了正确的包。
apt-cache policy linux-generic*
您可以通过执行并查找输出中包含 *** 的包来找到您已安装的包。对我来说,它是linux-generic-lts-xenial
,所以我需要安装的头文件包是linux-headers-generic-lts-xenial
您可能还需要安装build-essential
包裹。
答案2
在你的情况下
$ sudo apt-get install linux-headers-4.4.0-042stab113.11
$ sudo apt-get install linux-headers
如果最后一条命令失败,你可能需要执行
$ sudo apt-get update
$ sudo apt-get upgrade
一般来说
使用以下方式安装标头
$ sudo apt-get install linux-headers-$(uname -r)