【经验分享】 解决CentOS7 安装VMTools提示找不到Kernel头文件的方案
配置一个Linux的开发环境,用VM10+CentOS7(Kernel版本3.10.0-327.10.1.el7),之后发现VMTools功能不全,查证后发现需要卸载重装,于是开始折腾。
按照各种说明,先后运行 yum install gcc、 yum install kernel-devel,gcc确实没装但是Kernel是自带了的。之后挂载VMTools,复制解压运行,都没问题。但是运行中报错开始, 提示: Enter the path to the kernel header files for the 3.10.0-327-generic kernel?
卡在这里死活过不去,百般搜索没有找到完整的解决方案。于是挨着试验吧。
先说结论,出现这个的原因是VMTools 安装时没能找到Kernel的头文件。可能的原因无非是Kernel没装或者头文件丢失。在多次运行Yum (包括一次Yum update)后均提示已经安装Kernel最新版,无需更改,所以基本排除可能性A. 当然如果是所安装的VMTools版本本身对Kernel有特定要求呢?那就只能单独安装其他版本的Kernel了。好在遇到的不是这个情况。
所以接下来查证第二个原因。首先的测试是,直接在提示输入Kernel的路径时手工指定Kernel的位置,即:/usr/src/Kernels/xxx(version)/include,当然还是没有成功。
在查到的博客后发现另一个原因,3.x版本的kernel将这个头文件的位置在 /usr/src/Kernels/xxx(version)/include/generated/uapi/linux/version.h,而早期版本的则位于/usr/src/Kernels/xxx(version)/include/linux/version.h, 较早版本的VMTools则不能自动识别新目录。所以解决方案是通过建立从新版位置的Version.h到/include/linux/version.h的软连接,即 ln -s 命令。
如此修改后重起Linux环境即可使修改生效,完成安装。