1.网上错误解决方案
网上对于这个问题普遍的解决方案是使用
yum install -y kernel-devel gcc
yum -y upgrade kernel kernel-devel
以上代码主要功能是安装gcc库和kernel-devel工具,同时将kernel以及kernel-devel升级成最新版本,之后再安装增强工具就可以顺利安装。
2.网上错误解决方案原因探究
网上方案弊端1
使用以上方案解决,一般而言都会重新安装最新版本的linux内核,主要表现为在开机选项中会出现多个系统版本可选。
网上方案弊端2
对于安装的linux内核版本有要求的用户,没法使用以上方案去解决对应系统的增强功能安装。
网上方案弊端3
由于会更新kernel到最新版本,如果使用的是较老版本的VirtualBox,可能会发现VirtualBox和linux内核不兼容,就会在开机出现kernel panic导致没法进入新的系统。(也是这个原因,才决定去研究下如何对系统改动最小的方式去安装增强工具)
安装增强功能真正需要的是什么
需求一
安装gcc库,并且对于gcc库的版本并没有什么要求
需求二
安装kernel-devel工具,并且版本号和kernel版本号一致
网上方案为什么能解决无法安装问题
通过以上的需求分析,网上的方案首先安装了gcc库,这步操作并没有什么问题,使得满足了需求一。
但对于需求二,由于目前国内的yum源网站,一般Centos的源是中科大的安装源,只提供最新版本内核的kernel-devel,导致了用户并不能有选择的安装当前内核版本的kernel-devel,所以采用了最暴力和省事的方案就是同时安装最新版本的kernel和kernel-devel,从而来满足需求二。
3.正确解决方案
通过以上分析可以得出对系统改动最小的方案就是,有选择的安装和当前内核版本相对应的kernel-devel,既然国内的源并没有相应的安装包提供,就需要手动从国外源下载对应的kernel-devel,之后再安装就可以了。
Step 1
在https://vault.centos.org/7.7.1908/os/x86_64/Packages/ 该网站下载对应版本号的kernel-devel文件,本文中以Centos7.7版本为例(由于是国外源,下载速度可能没那么快,但是好在文件比较小)。
Step 2
来到下载的kernel-devel文件所在文件夹,在空白处单击右键打开Terminal
Step 3
输入以下代码,后面的文件名按照实际文件名进行输入
sudo yum install kernel-devel-3.10.0-1062.el7.x86_64.rpm
Step 4
输入 y 继续进行安装
看到Complete就表示已经安装完成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xOrQbuQO-1666589038404)(H:\我的坚果云\公众号\pic3\file3_1_8.png)]
Step 5
继续安装其他需要的相应库,输入以下代码,等待安装完成
sudo yum install gcc make perl
Step 6
回到桌面双击进入增强包的安装镜像,如果没有镜像文件,关闭虚拟机,指定对应本地增强包的安装镜像,再次进入系统,或者点击虚拟机上方菜单栏,以此点击设备,再点击安装增强功能。
Step 7
如果是从光盘进入,选中VBoxLinuxAdditions.run,然后点击右上角Run Software按钮
Step 8
弹出对话框,点击run,再输入root密码,点击Authenticate
Step 9
等待安装完成
Step 10
安装完成后,重启虚拟机,登录账户之后,即可最大化桌面
至此就以对系统最小的改动,完成VirtualBox增强功能的安装
关注【量化杂货铺】公众号,在后台回复【kernel-devel】,就可以获得CentOS7.7内核版本对应的kernel-devel