关键词:Fedora8 kernel VirtualBox
|iH9q_C$DA7L"g0 我喜欢
Linux,坚持使用Linux,并能用Linux做绝大部分的事,但是有时仍然需要使用windows(这样的需求正逐步减少),这是因为有些
软件必须运行在windows下面,这时我就不得不忍受“漫长”的系统切换时间,而最让我不能忍受的事是我必须停下手头的工作,其原因仅仅是因为要使用windows下面的软件!这样的感觉太不爽了,为了彻底改变这种情况,于是我想到了虚拟机。现在虚拟机做的最好的是vmware,但那是商业版,而Fedora自带的Xen对硬件要求较高,不过我们还有一个开源的VirtualBox,感谢VirtualBox的开发团队,让我们还有选择。
LUPA开源社区@ n4[~:`!?D5I+` VirtualBox网站提供了Fedora8的rpm包,所以VirtualBox的安装非常简单,但是为了让VirtualBox工作起来,还必须做一些配置,主要是不同的内核架构方面的配置。
LUPA开源社区/iY^^ J4Y5n 下面是我的所有操作步骤,在Fedora8+gnome下面通过,希望对那些和我一样在linux工作,但有时又要切换到windows的或者想安装VirtualBox的朋友有帮助。
LUPA开源社区'{[q rK1[{y&E 那么,我们该如何开始呢?当然首先从安装VirtualBox开始了。
/c'|az6aw/F td0 从VirtualBox的官方网站www.virtualbox.org下载Fedora8的rpm安装包,双击安装。当然你完全可以从源代码包安装,如果你愿意的话。
LUPA开源社区j)i4|hQ!h6@ u$hM VirtualBox安装好后,你可以用两种方法启动它:
LUPA开源社区5EcN/US 1、在shell下面输入:VirtualBox(注意大小写)
:{3q]C*|0 2、在“应用程序”菜单选择“系统工具”->“Innotek VirtualBox“
LUPA开源社区.D7xn,c1y 无论你用那种方式,都能启动VirtualBox,但是你还不能运行虚拟机,原因很简单,Fedora8默认安装的是i586架构的kernel,而VirtualBox需要i686的kernel,这个可以在使用shell方法运行VirtualBox时得到提示信息:
LUPA开源社区 FZ3C,E@2n)Yf WARNING: The vboxdrv kernel module is not loaded. Either there is no module
LUPA开源社区hcn(w+^A'[ ] available for the current kernel (2.6.23.1-42.fc8) or it failed to
/P
M:m5Kx*o(S0 load. Please recompile the kernel module and install it by
V.C r3?
G@"x[r/S0LUPA开源社区5L$z?Dj hO sudo /etc/init.d/vboxdrv setup
LUPA开源社区$wCJ1rm\^)iu,s&b8T,H0 You will not be able to start VMs until this problem is fixed.
LUPA开源社区F8cA$B7uT
h 这段话的大致意思是:vboxdrv内核模块没有加载,可能的原因是没有2.6.23.1-42.fc8内核的模块或者模块加载错误。请使用下面的命令重新编译安装这个模块:
i$n%qO
om%p v0 sudo /etc/init.d/vboxdrv setup
LUPA开源社区J'M v#bx0L]O 在你修复这个问题之前你不能启动虚拟机。
LUPA开源社区0ZoY5e
y/\ 有一个概念必须明确,就像我前面说的一样,你安装VirtualBox后能够正常启动VirtualBox,但是你无法运行虚拟机,即你不能新建一个虚拟机,然后安装windows系统,因为VirtualBox只是一个虚拟机管理软件,还不是具体的可以运行的虚拟机。
;B}9\bd#pDf
K0 那么,该如何解决这个问题,你可能会想到,既然它叫你重新编译安装vboxdrv模块,那就编译吧,应该就可以解决问题了,我也是这么做的:
9y-W(ib8e&bOmI2L0 输入命令:sudo /etc/init.d/vboxdrv setup,系统提示你没有kernel的编译包,于是又用yum安装kernel的编译包,再次输入命令,编译安装成功了,这下应该可以了吧,再次输入:VirtualBox,可是仍然没有解决问题,这次出现的提示信息和第一次的不同,因为我的系统已经正确运行VirtualBox,当时又没有将第二次输入VirtualBox命令的信息保存下来,所以这里我不能将这个信息贴出来,只记得在google上用这个错误信息搜索了一番,然后找到了下面这个贴子,正是这个贴子解决了我所有的问题:
LUPA开源社区_ ^+emp
q;y http://forums.fedoraforum.org/showthread.php?t=139751
n*n4n+A ]G6^)i:^
Z0 看回上面的错误信息,可以看到还有第二个错误,那就是加载vboxdrv加载错误,其实这个才是真正的错误:即kernel的架构与VirtualBox的不相符,Fedora8默认安装的是i586架构,而Virtualbox要求的是i686架构,这个信息可以用下面的命令获取:
~8jC~G$X`g0
uname -a
LUPA开源社区8LkPD%{ Linux free81 2.6.23.1-42.fc8 #1 SMP Tue Oct 30 13:05:10 EDT 2007 i686 i686 i386 GNU/Linux
LUPA开源社区iU:ho.bnz 这个命令并不能得出正确的信息。
[Bq{m'k(J0u
](uEi0 rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n"|grep kernel|sort
|*Ib.`*]0 kernel-2.6.23.1-42.fc8.i586
J$N!M&Nj6~.M0 kernel-2.6.23.15-137.fc8.i686
LUPA开源社区M:r cv/j9Ro kernel-devel-2.6.23.15-137.fc8.i686
LUPA开源社区 OWtI W%Cz kernel-headers-2.6.23.15-137.fc8.i386
{yGV:tK+c8?0 kernel-xen-2.6.21-2950.fc8.i686
Rt~6zH2j"G
ln0 从这里我们可以看出我们现在的内核是第一个i586的。
LUPA开源社区f-kR%N4?1TFF 知道了问题所在,我们就可以解决了:
LUPA开源社区O;sQ'{B
z6P 首先,你的系统应该安装“yum-utils“组件,这个在我的系统中是默认安装的,如果你的系统没有安装,应该先安装它:
su -c "yum install yum-utils"。
LUPA开源社区;Bv!Te&M9\ }@ 然后,更新内核:
yum update kernel
LUPA开源社区 QSaG:Q)N#R}z 下载i686架构的kernel:
yumdownloader kernel.i686
LUPA开源社区[?J.|"pv4g 安装i686架构的kernel,这有两种情况:如果i686架构的kernel包比系统当前安装的kernel大(在更新当前内核时可以看到当前内核的大小,这也是首先更新内核的原因):
su -c "rpm -ivh kernel-2*.i686.rpm"
z/RM g e
@V1I*}a0 否则:
su -c "rpm -ivh --replacefiles --replacepkgs kernel-2*.i686.rpm",覆盖当前内核。
xAZx!@Y\[5o0 最后,安装了新的i686架构的内核后,重新编译安装vboxdrv内核模块:sudo /etc/init.d/vboxdrv setup
LUPA开源社区k:e0q-ADXl 至此,VirtualBox安装成功,可以新建虚拟机,并安装windows系统了!
LUPA开源社区d?D`&L#u6b!l 补充:关于用户权限问题,将用户添加到组:vboxusers,则用户将具有读写/dev/vboxdrv的权限,可以解决虚拟机系统启动的-1909错误,当然,修改/drv/vboxdrv也是一个方法。多谢snail指正!K}T$u,@0