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的系统,所以碰碰运气下载试试

  • openSUSE 13.2 ("Harlequin") / Leap 42 ("Malachite")  i386 |  AMD64

运气果然是不好的,安装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过程的主要内容,如果未能解决你的问题,请参考以下文章

SuSE 11 sp3 下安装异系统共享Samba服务

求suse linux 10 sp3 ISO映像下载地址?要免费的

SuSE 11 sp3 下安装配置nfs共享挂载

suse11 SP3上源码安装R过程

suse12 sp3 密码忘记,如何修改

suse_linux 11 sp3 安装 was7