SUSE12SP3简单粗暴安装VirtualBox5.2过程
Posted lhzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SUSE12SP3简单粗暴安装VirtualBox5.2过程相关的知识,希望对你有一定的参考价值。
环境组合:vmware workstation + SUSE12SP3 + VirtualBox-5.2-5.2.10_122088_openSUSE132-1.x86_64
最终解决办法很简单,只需要修改/etc/modprobe.d/10-unsupported-modules.conf文件,把allow_unsupported_modules的值从0修改为1,就可以暴力安装,测试使用VirtualBox功能也正常——学习之用,不保证有没有隐患。
# cat /etc/SuSE-release
SUSE Linux Enterprise Server 12 (x86_64)
VERSION = 12
PATCHLEVEL = 3
# rpm -qa|grep Virtual
VirtualBox-5.2-5.2.10_122088_openSUSE132-1.x86_64
需求来源:学习Docker的时候,其中用到VirtualBox来方便创建几台测试机
https://yeasy.gitbooks.io/docker_practice/content/swarm_mode/create.html
像这样的命令
$ docker-machine create -d virtualbox manage
于是有了令人不适的一个开始:
从官网下来 https://www.virtualbox.org/wiki/Linux_Downloads 对应的版本(openSUSE13.2 AMD64),由于没有提供SUSE Linux Enterprise Server 12对应版本,而我已经在SUSE12SP3的系统学着Docker的东西,懒得再装openSUSE13.2的系统,所以碰碰运气下载试试
运气果然是不好的,安装rpm包就出现报错
# rpm -ivh VirtualBox-5.2-5.2.10_122088_openSUSE132-1.x86_64.rpm
warning: VirtualBox-5.2-5.2.10_122088_openSUSE132-1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 98ab5139: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:VirtualBox-5.2-5.2.10_122088_open################################# [100%]
Creating group ‘vboxusers‘. VM users must be member of that group!
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use ‘dmesg‘ to find out why.
There were problems setting up VirtualBox. To re-start the set-up process, run /sbin/vboxconfig as root.
根据提示,dmesg查看毛线报错提示都没有。这个时候,就开始了百度/谷歌的旅程。网上也有很多人遇到类似的报错,基本的解决办法是将启动模式改成UEFI,并关闭安全引导。
所以把我的workstation从10升级->12->14,以支持这个开关 选项->高级->固件类型。PS:只有vmware workstation10.X支持选项,最好用14。对于已安装的虚拟机,固件类型从Bios改为UEFI,启动不了。所以还新装多一个虚拟机用UEFI方式安装SUSE12SP3。
然而这个方案对于我的环境没有作用,依然是冷冰冰的“vboxdrv.sh: failed: modprobe vboxdrv failed. Please use ‘dmesg‘ to find out why.”
怎么办呢?去/var/log下面找,看到有vbox-install.log文件,研究之后发现并没有明显报错。也就是说,网上另外有人遇到gcc版本问题的也不是这个出错的原因,因为make的过程都是成功,所以你别去试gcc降级的事情先,不妨先试试我这个办法。而如果是提示kernel-default-devel没安装,那还是要装上的。zypper install kernel-default-devel。
......
/vbox.0/vboxpci.ko /tmp/vbox.0/vboxpci.o /tmp/vbox.0/vboxpci.mod.o
make V=1 CONFIG_MODULE_SIG= -C /lib/modules/4.4.103-6.38-default/build SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 INSTALL_MOD_PATH= INSTALL_MOD_DIR=misc modules_install
make -C ../../../linux-4.4.103-6.38 O=/usr/src/linux-4.4.103-6.38-obj/x86_64/default/. modules_install
make -C /usr/src/linux-4.4.103-6.38-obj/x86_64/default KBUILD_SRC=/usr/src/linux-4.4.103-6.38 \\
-f /usr/src/linux-4.4.103-6.38/Makefile modules_install
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \\
echo >&2; \\
echo >&2 " ERROR: Kernel configuration is invalid."; \\
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\\
echo >&2 " Run ‘make oldconfig && make prepare‘ on kernel src to fix it."; \\
echo >&2 ; \\
/bin/false)
mkdir -p /lib/modules/4.4.103-6.38-default/misc
make -f /usr/src/linux-4.4.103-6.38/scripts/Makefile.modinst
mkdir -p /lib/modules/4.4.103-6.38-default/misc ; cp /tmp/vbox.0/vboxpci.ko /lib/modules/4.4.103-6.38-default/misc ; true /lib/modules/4.4.103-6.38-default/misc/vboxpci.ko ; true /lib/modules/4.4.103-6.38-default/misc/vboxpci.ko || true && true /lib/modules/4.4.103-6.38-default/misc/vboxpci.ko
/bin/sh /usr/src/linux-4.4.103-6.38/scripts/depmod.sh /sbin/depmod 4.4.103-6.38-default ""
那要不就去看看vboxdrv.sh文件内容吧,既然报错是它给出来的。VB的东西是在路径/usr/lib/virtualbox下面,通过检查vboxdrv.sh文件,通过报错提示信息确定我遇到的报错,只有下面这段代码可能产生。
modprobe命令是linux用来装卸内核模块的命令,手工跑一下看它怎么失败了。
linux-qqvo:/usr/lib/virtualbox # modprobe vboxdrv
modprobe: ERROR: module ‘vboxdrv‘ is unsupported
modprobe: ERROR: Use --allow-unsupported or set allow_unsupported_modules 1 in
modprobe: ERROR: /etc/modprobe.d/10-unsupported-modules.conf
modprobe: ERROR: could not insert ‘vboxdrv‘: Operation not permitted
就是unsupported而已,作为一个直男我们不能轻易接受NO,也不喜欢绕过去。既然是正常不支持,那就简单粗暴试试,如开头所说,修改/etc/modprobe.d/10-unsupported-modules.conf文件,把allow_unsupported_modules的值从0修改为1,再运行 /sbin/vboxconfig 再无障碍。
# /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: Starting VirtualBox services.
从此,Docker和VirtualBox就过上了幸福快乐的生活。
以上是关于SUSE12SP3简单粗暴安装VirtualBox5.2过程的主要内容,如果未能解决你的问题,请参考以下文章