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 -a
和rpm -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菜单也变成可用了。
总结
首先要检查软件是不是最新版本,否则真是瞎折腾。
来源:oschina
链接:https://my.oschina.net/swingcoder/blog/4311573