Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

Kvm、VMware、Virtualbox、Xen、Qemu 等
回复
头像
zwdnet
帖子: 348
注册时间: 2010-06-09 15:22

Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#1

帖子 zwdnet » 2011-03-20 21:13

我的Ubuntu是10.04,之前内核为2.6.37,今天我从ppa源里把内核升级至2.6.38-7-generic-pae(电脑是上网本,CPU为atom,应该只有32位),同时还升级了头文件,之后重启,再运行VirtualBox,并打开XP虚拟机,但是出错,提示如下:
图一
图一
之前我升级内核也曾出现同样的问题,按照提示执行

代码: 全选

sudo /etc/init.d/vboxdrv setup
再重启就OK了。但是这次运行上述命令却出错:

代码: 全选

zym@zym-freedom:~$ sudo /etc/init.d/vboxdrv setup
[sudo] password for zym: 
 * Stopping VirtualBox kernel modules                                            *  done.
 * Uninstalling old VirtualBox DKMS kernel modules                               *  done.
 * Trying to register the VirtualBox kernel modules using DKMS                  
Error! Bad return status for module build on kernel: 2.6.38-7-generic-pae (i686)
Consult the make.log in the build directory
/var/lib/dkms/vboxhost/4.0.0/build/ for more information.

 * Failed, trying without DKMS
 * Recompiling VirtualBox kernel modules                                        
 * Look at /var/log/vbox-install.log to find out what went wrong
zym@zym-freedom:~$ 
按照提示,看两个日志文件,
这是make.log:

代码: 全选

DKMS make.log for vboxhost-4.0.0 for kernel 2.6.38-7-generic-pae (i686)
2011年 03月 20日 星期日 21:09:05 CST
make:进入目录'/usr/src/linux-headers-2.6.38-7-generic-pae'
  LD      /var/lib/dkms/vboxhost/4.0.0/build/built-in.o
  LD      /var/lib/dkms/vboxhost/4.0.0/build/vboxdrv/built-in.o
  CC [M]  /var/lib/dkms/vboxhost/4.0.0/build/vboxdrv/linux/SUPDrv-linux.o
In file included from /var/lib/dkms/vboxhost/4.0.0/build/vboxdrv/include/VBox/types.h:30,
                 from /var/lib/dkms/vboxhost/4.0.0/build/vboxdrv/linux/../SUPDrvInternal.h:35,
                 from /var/lib/dkms/vboxhost/4.0.0/build/vboxdrv/linux/SUPDrv-linux.c:31:
/var/lib/dkms/vboxhost/4.0.0/build/vboxdrv/include/iprt/types.h:97:31: error: linux/autoconf.h: 没有那个文件或目录
make[2]: *** [/var/lib/dkms/vboxhost/4.0.0/build/vboxdrv/linux/SUPDrv-linux.o] 错误 1
make[1]: *** [/var/lib/dkms/vboxhost/4.0.0/build/vboxdrv] 错误 2
make: *** [_module_/var/lib/dkms/vboxhost/4.0.0/build] 错误 2
make:离开目录“/usr/src/linux-headers-2.6.38-7-generic-pae”

这是/var/log/vbox-install.log:

代码: 全选

Uninstalling modules from DKMS
  removing old DKMS module vboxhost version  4.0.0

------------------------------
Deleting module version: 4.0.0
completely from the DKMS tree.
------------------------------
Done.
Attempting to install using DKMS

Creating symlink /var/lib/dkms/vboxhost/4.0.0/source ->
                 /usr/src/vboxhost-4.0.0

DKMS: add Completed.

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area....
make KERNELRELEASE=2.6.38-7-generic-pae -C /lib/modules/2.6.38-7-generic-pae/build M=/var/lib/dkms/vboxhost/4.0.0/build.....(bad exit status: 2)
0
0
Failed to install using DKMS, attempting to install without
Makefile:178: *** Error: /usr/src/linux (version 2.6.38) does not match the current kernel (version 2.6.38-7-generic-pae)。 停止。
按照 viewtopic.php?f=65&t=298405&start=15 的16楼的方法同样失败。
请问现在该怎么办?重装VirtualBox吗?谢谢!
上次由 zwdnet 在 2011-03-21 0:15,总共编辑 1 次。
您好,请多关照!
头像
zwdnet
帖子: 348
注册时间: 2010-06-09 15:22

Re: 求助:Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。

#2

帖子 zwdnet » 2011-03-21 0:13

折腾一晚上,终于解决了!先导出已经建立的虚拟机(后来发现不用,但安全第一!),然后在新立得里删除VirtualBox跟dkms,然后运行从virtualbox官网上下载的deb文件(因为我要在虚拟机里用U盾,所以不能直接用源里的),安装完成就可以打开XP虚拟机了,连导入虚拟机都不用!唉,我差点都想换一个虚拟机软件了。
您好,请多关照!
头像
zwdnet
帖子: 348
注册时间: 2010-06-09 15:22

Re: Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#3

帖子 zwdnet » 2011-03-21 10:51

这里也有个解决方法,我没试过,留在这儿,如果有人出现同样的问题,可以试试。
http://zhyu.me/ubuntu/solution-for-vbox-on-2-6-38.html
您好,请多关照!
头像
行远自迩
帖子: 403
注册时间: 2009-04-19 15:27

Re: 求助:Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。

#4

帖子 行远自迩 » 2011-03-23 19:45

zwdnet 写了:折腾一晚上,终于解决了!先导出已经建立的虚拟机(后来发现不用,但安全第一!),然后在新立得里删除VirtualBox跟dkms,然后运行从virtualbox官网上下载的deb文件(因为我要在虚拟机里用U盾,所以不能直接用源里的),安装完成就可以打开XP虚拟机了,连导入虚拟机都不用!唉,我差点都想换一个虚拟机软件了。
之前,可以用这个方法搞定。

但是,重装了一遍系统,下的i386的ISO,6.01的,装了一个这样的内核——2.6.38-1-amd64,系统自己装上的。
看内存,之前只能认到3.2G,现在是3.4G(装64位系统才会有的现象)了,刚看到时,有点恍惚——装的32位的ISO,怎么变成64位的系统了?

其实,不是,还是32位的系统,只是这个内核,是针对64位CPU优化(?)了的....

但是,此时,楼主的方法,失效了....
附件
Screenshot.jpg
Screenshot-1.jpg
Screenshot-2.jpg
Screenshot-2.jpg (11.36 KiB) 查看 3820 次
无从完美。
stephenven
帖子: 85
注册时间: 2006-04-20 10:29

Re: Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#5

帖子 stephenven » 2011-03-30 2:24

mark下,3L的那个方法可以……
Screenshot.png
图片
calvin.ngei
帖子: 178
注册时间: 2007-10-14 13:22

Re: Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#6

帖子 calvin.ngei » 2011-03-30 5:58

我以前自己编译 2.6.35 也遇到过这种情况,后来发现内核跟内核头文件包虽然升级了,但是 linux-libc-dev 这个包却还是旧版本的,问题就出在这里。彻底的解决方法是,把 2.6.38 对应的 linux-libc-dev 包装上即可。

怎么生成这个包呢?
apt-get source linux-libc-dev
这样就把旧版本的 linux 源码包弄了回来,我们要它里面的 debian 目录。
然后自己去 kernel.org 下载 2.6.38 的源码,把旧版内核源码目录里面的 debian 目录拷贝到 2.6.38 内核源码目录里面,修改 changelog,然后 debuild ,它会让你配置内核,最后生成一大堆 deb 包和 udeb 包,里面就有 2.6.38 的 linux-libc-dev 包,把它跟 linux-image 包和 linux-headers 包一起装上就不会有问题。

贪图省事的话,去这个地方把 2.6.38 的三个 patch 下载回来:
http://kernel.ubuntu.com/~kernel-ppa/ma ... .38-natty/
给从 kernel.org 下的 2.6.38 原始源码 patch 上,里面就有了用于建包的 debian 目录和预设内核配置。
不喜欢它的内核配置很容易自己改一个,或者加点什么自己的 patch 修改之类的。
再编辑 debian 目录下的 changelog ,把版本号后面的小号改成自己喜欢的,最后返回源码目录第一层,执行 debuild 即可。

如果你按照网上其他非 debuild 方法打包,不会给你生成 linux-libc-dev 包的。
头像
shinery
帖子: 1378
注册时间: 2009-07-22 22:23

Re: Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#7

帖子 shinery » 2011-04-02 16:52

没遇到任何问题的2.6.38-1用户同情中飘过。感觉这个内核升级遇到问题比其它版本内核还少。
愿扣上你双手,至繁华浪处到沙丘。
头像
宇宙卡门
帖子: 73
注册时间: 2009-12-13 21:11
来自: 湖南湘潭

Re: Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#8

帖子 宇宙卡门 » 2011-04-02 18:03

其实这个问题也很简单,就是你通过优化某些东西,把virtualbox的这个服务给关闭了,所以每次开机一运行virtualbox就会提示这个,并且只能通过sudo /etc/init.d/vboxdrv setup 这条命令重新编译,才能使用。
解决的办法就是开启相关的服务,然后就ok了
我喜欢你,很久了。等你,也很久了。现在,我要离开,比很久很久还要久
我问,怎样才能让一个人知道你在想他?
你说,心里不停地默念他的名字,他就能感受到。
可我一直在心底重复着你的名字,你却一直没有音信。
我问,当你在等一个人的短信时,你是会调成静音模式还是户外模式?
你说,静音。这样,发现短信来到的时候就会充满惊喜。
于是我调了静音,于是我马上就后悔。
我一直在看手机,每一次屏幕亮起的瞬间,我的一颗心就也跟着亮了起来,这感觉,那样美好,那样心碎。
也许,你并不知道我在等你。
calvin.ngei
帖子: 178
注册时间: 2007-10-14 13:22

Re: Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#9

帖子 calvin.ngei » 2011-04-03 0:51

宇宙卡门 写了:其实这个问题也很简单,就是你通过优化某些东西,把virtualbox的这个服务给关闭了,所以每次开机一运行virtualbox就会提示这个,并且只能通过sudo /etc/init.d/vboxdrv setup 这条命令重新编译,才能使用。
解决的办法就是开启相关的服务,然后就ok了
这个谁不知道呢?
你都没有看楼主所说的问题呃。
他是编译新内核模块时找不全头文件。所缺的头文件位于 linux-libc-dev 包内。
只是编译安装了新版 linux-image 包和 linux-headers 包,没有安装相应版本的 linux-libc-dev 就会有这样的问题。
jzaz1001063
帖子: 22
注册时间: 2009-10-10 13:05

Re: Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#10

帖子 jzaz1001063 » 2011-04-26 9:48

3楼的方法可以完美解决掉问题,不过本人菜鸟,看不懂第一行命令…… :em06
rediscover
帖子: 3173
注册时间: 2010-01-13 23:26

Re: Linux内核升级到2.6.38后VirtualBox无法打开虚拟机,重新编译模块也失败。(已解决)

#11

帖子 rediscover » 2011-04-28 2:00

最简单的办法是用virtualbox 4
Here I am.
Ubuntu 桌面培训 - 全中文官方文档,含汉化截图,提供PDF
回复