13432878738 发表于 2015-4-14 10:36:11

【运维网】fedora安装virtualbox

  参考博客:
  http://techbbs.zol.com.cn/1/60_1997.html
  http://blog.sina.com.cn/s/blog_667725170100q51t.html
  

  

  正文:
  1.从官网(http://www.virtualbox.org/wiki/Linux_Downloads)下在我所需要的virtualbox版本(VirtualBox-4.1-4.1.0_73009_fedora14-1.i686.rpm),同时下载扩展文件(Oracle_VM_VirtualBox_Extension_Pack-4.1.0-73009.vbox-extpack,支持从USB2启动)
  

  2)Virtualbox依赖于dkms,于是安装
yuminstall dkms.noarch
(或:yum install dkms)
3)安装virtualbox ,进入刚下载的文件所在目录
rpm-ivh VirtualBox-4.0-4.0.4_70112_fedora14-1.i686.rpm
  如果提示:缺少什么插件,那你就根据提示进行安装
  
4)如果要让虚拟机使用U盘,那么在宿主机中需要把当前登录用户——“xxxxx”,添加到“vboxusers”组中,其中vboxusers组是在安装virtualbox时自动创建的群。通过命令“usermod-G vboxusers -axxxxx”实现添加。(对于一些老版本的linux所要做的工作可能不止这一条,因为老版本的linux不能自动识别u盘,所幸的是Fedora14够新了。)
  如我的机器输入:
  usermod-G vboxusers -a Jason
  

  5)构建内核树
到这个时候,在Application-> system tool 下面可以看到virtualbox 的图标,可以运行。
但是当你启动虚拟机的时候其实还是报错的,根据提示运行
/etc/init.d/vboxdrvsetup
提示出错信息如下,分析原因,因为这是驱动,驱动编译的时候需要内核树,这个涉及到Linux驱动程序开发
方面的问题,可以不深入研究,以下阐述解决办法。
# /etc/init.d/vboxdrv setup
Stopping VirtualBox kernelmodules                        
Uninstallingold VirtualBox DKMS kernel modules            
Tryingto register the VirtualBox kernel modules using DKMS
Error! Yourkernel source for kernel 2.6.35.6-45.fc14.i686 cannot be foundat
/lib/modules/2.6.35.6-45.fc14.i686/build or/lib/modules/2.6.35.6-45.fc14.i686/source.
                                                         
(Failed,trying without DKMS)
Recompiling VirtualBox kernelmodules                     
(Lookat /var/log/vbox-install.log to find out what went wrong)

于是提示找不到linux到kernel,由于默认安装到时候没有源代码,所以先搞定源代码,否则**。
确认好系统到版本,例如当前运行的系统的版本号是:
uname-r
2.6.35.6-45.fc14.i686
那么要找到是2.6.35.6-45.fc14.i686,于是到fedora到官方目录,例如14的是
http://download.fedora.redhat.com/pub/fedora/linux/releases/14/Fedora/source/SRPMS/
下载这个文件
kernel-2.6.35.6-45.fc14.src.rpm   
如果你之前试过从源代码安装软件,那么可以跳过这一步,否则要建立一个编译的目录。
在用户根目录,例如我的是/home/Jason/运行命令建立相关目录
cd~
rpmdev-setuptree
然后处理一下依赖关系,否则编译过程中会有一堆依赖错误的
yum-builddepkernel-2.6.35.6-45.fc14.src.rpm
接着是安装
rpm-Uvhkernel-2.6.35.6-45.fc14.src.rpm
提示缺少用户,可以不管他,或者自己创建一个用户就行来,默认用root来取代
接着进入刚才建立到rpmbuild目录下的SPECS子目录,其中参数-bp的意思是将.src.rpm包解压缩
到/rpmbuild/SOURCE目录,然后打补丁,target是指定平台
cd~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m`kernel.spec
然后源代码树就已经放在rpmbuild的BUILD目录下面了,例如我的是
/home/Jason/rpmbuild/BUILD/kernel-2.6.35.fc14/linux-2.6.35.i686
然后是配置内核,方法是生成.config配置文件,可以直接使用当前系统的配置,在/boot目录下
cd~/rpmbuild/BUILD/kernel-2.6.35.fc14/linux-2.6.35.i686
cp/boot/config-2.6.35.6-45.fc14.i686 .config
然后运行menuconfig进入图形化配置,目前没有具体研究内核配置,所以不做修改。
makemenuconfig
如果之前没有运行过menuconfig的话会提示缺库,那么安装ncurses就行了
yuminstall ncurses
修改Makefile,注意这步很重要,必须要做,否则之后到驱动运行的时候提示版本不对。
vimMakefile 运行vim来编辑Makefile,当然可以使用gedit来编辑,方便一点
找到这个:其实就在前几行而已
EXTRAVERSION= xxx
修改为当前到版本修改为和当前版本符合的:
VERSION= 2
PATCHLEVEL = 6
SUBLEVEL = 35
EXTRAVERSION =.6-45.fc14.i686
接着是编译内核和编译模块,因为之前已经解决来依赖问题,所以这步基本不会有其他问题的
makebzImage
make modules
make modules_install
那么在系统模块目录/lib/modules/应该有刚安装了的模块
2.6.35.6-45.fc14.i686这个目录就是模块所在目录
这个目录下到build目录就是需要指向源代码树的,要确认一下build是链接文件,确认指向是正确的
例如我的指向是:
/home/Jason/rpmbuild/BUILD/kernel-2.6.35.fc14/linux-2.6.35.i686
如果不对的话其实可以手动建立链接
rmbuild
ln -s/home/Jason/rpmbuild/BUILD/kernel-2.6.35.fc14/linux-2.6.35.i686build
一切准备就绪来,重新编译virtualbox的内核驱动模块,可以按照提示的命令
$ sudo /etc/init.d/vboxdrv setup
password for Etual:
Stopping VirtualBox kernelmodules                        
Uninstallingold VirtualBox DKMS kernel modules            
Tryingto register the VirtualBox kernel modules using DKMS
StartingVirtualBox kernelmodules                        
可以看到提示,一切都OK了,这个时候就可以运行virtualbox了!
  如果提示要安装usb2.0不能用,则安装扩展插件
页: [1]
查看完整版本: 【转载】fedora安装virtualbox