VirtualBox辅助工具安装

原创
2020/06/15 00:31
阅读数 697

VirtualBox辅助工具安装

swingcoder

VritualBox作为最流行的虚拟系统工具之一,虽然Docker发展很快,但VM模式仍有其必要性,例如是开发者个人测试环境的搭建,用Docker来配置一套开发环境也并不容易,这时还不如直接用VM来解决。

使用过VirtualBox产品的人应该知道,除了系统虚拟化,VirutalBox本身还提供了一个增强工具包,叫Guest Additions(或者叫vboxClient),一般包括一些Host机与Guest机进行更加方便的配合操作,如分辨率的修改、剪切板的使用等。

在安装VirtualBox的增强辅助工具时,在安装Guest Additions时也经常会出现问题,下面分别讲解各个问题的解决办法。

所先,系统环境如下

VirtualBox: 6.1

Guest Additions: 6.1.8

Host OS: Darwin MacBook-Pro.local 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64 x86_64

Guest OS: CentOS 8.0,Linux localhost.localdomain 4.18.0-147.8.1.el8_1.x86_64 #1 SMP Thu Apr 9 13:49:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Guest OS启动后,点菜单Virutalbox VM - Devices - Insert Guest Additions CD Image,系统将自动播放Additions的光盘镜像,系统会弹出是否运行的提示,点运行安装,出现了如下的错误:

kernel headers not found for target kernel

modprobe vboxguest failed

这应该是一个常见错误。这个错误是因为Guest OS系统的kernel header包与kernel版本不一致导致的,使用命令uname -arpm -qa|grep kernel来证实。需要保持一致就解决了。因为安装Guest Additions一般需要重新编译,需要kernel headers文件,而默认系统安装时一般不会同时安装头文件,大部分人就会重新安装最新版的头文件,而系统的kernel版本又是旧的,所以导致这种不一致的问题,一般直接升级内核就行了。

yum update kernel -y

yum install kernel-headers kernel-devel gcc make -y

根据提示安装不同的依赖包,如果有旧版本的相关包,先删了,可以用 rpm -e --nodeps your-package-name

安装完kernel后要重启,使最新版本内核生效,然后再运行Additions光盘上的程序。

the virtualbox kernel service is not running

这是Guest OS启动后弹出的提示,服务没启动时的提示,可以手工启动一下,systemctl restart vboxadd,如果报错,则可以通过命令查看错误原因:systemctl status vboxadd,一般能看到具体的原因。

ValueError: File context for /opt/VBoxGuestAdditions-6.1.8/other/mount.vboxs

此条错误好像不会影响具体的功能。

make V=1 CONFIG_MODULE_SIG= CONFIG_MODULE_SIG_ALL= -C /lib/modules/4.18.0-147.8.1.el8_1.x86_64/build M=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j1 modules

Makefile:977: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". Stop.

make: *** [/tmp/vbox.0/Makefile-footer.gmk:114: vboxguest] Error 2

安装报上述错误,需要先 yum install elfutils-libelf-devel

VBoxClient: The parent session seems to be non-X11,Exiting...

再次启动时,如果vboxadd.service启动,但仍会提示上面的错误,这似乎是guest additions的一个bug,对实际使用影响不是很大,除了不能Resize屏幕,只能Scale缩放屏幕尺寸。要修正这个问题,先查一下安装的vboxClient版本号:ls /opt/VBoxGuestAdditions-6.1.8/,这个目录下版本号可能跟你的不同,自己查找类似的目录。此问题在6.1.10已经修正(参见link),所以,需要做的就是升级到6.1.10+。

从官网下载最新的VirtualBox主包及Extention包,升级完成后,启动CentOS系统,先删除旧的vboxClient:/opt/VBoxGuestAdditions-6.1.8/uninstall.sh,然后播入新版vboxClient,再次安装,编译过程可能要花几分钟,要耐心等候。安装完成后重启生效,启动后再也没出现VBoxClient: The parent session seems to be non-X11,Exiting...的提示了,并且Resize菜单也变成可用了。

总结

首先要检查软件是不是最新版本,否则真是瞎折腾。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部