Linux系统升级内核
本文以2.6版本升级到3.10.28版本为例
环境准备
[root@server11 ~]# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.28.tar.xz
[root@server11 ~]# yum install ncurses-devel ##安装依赖库
[root@server11 ~]# tar -xf linux-3.10.28.tar.xz -C /usr/src/ ##解压
[root@server11 ~]# cd /usr/src/linux-3.10.28/
部署
- 在系统原有的内核配置文件的基础上建立新的编译选项,所以复制一份到当前目录下,命名为.config
[root@server11 ~]# cp /boot/config-2.6.32-431.el6.x86_64 .config ##拷贝文件
[root@server11 ~]# sh -c 'yes "" | make oldconfig' ##配置
... ...XZ decompressor tester (XZ_DEC_TEST) [N/m/y/?] (NEW)
Averaging functions (AVERAGE) [Y/?] (NEW) yCORDIC algorithm (CORDIC) [N/m/y/?] (NEW)
JEDEC DDR data (DDR) [N/y/?] (NEW)
## configuration written to .config
编译安装
[root@server11 ~]# make -j8 bzImage ##生成内核文件
[root@server11 ~]# make -j8 modules ##编译模板
[root@server11 ~]# make -j8 modules_install ##编译安装模块
[root@server11 ~]# make install ##安装
修改配置文件
[root@server11 ~]# vim /etc/grub.conf
将default=1改为0
重启服务器
[root@server11 ~]# reboot
验证
[root@server11 ~]# uname -r
3.10.28
错误信息
- 遇到错误先请立,再编译
[root@server11 ~]# make mrproper
[root@server11 ~]# make clean
- 编译过程中报以下错误
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
##解决方法
[root@server11 ~]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@server11 ~]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
- 安装报以下错误
ERROR: modinfo: could not find module ...
ERROR: modinfo: could not find module vmware_balloon
这是因为和现有模块作对比,新的版本没有找到这些模块,如果没用到的话可以忽略,必须安装的话在.config文件中加入对应模块配置。eg: CONFIG_VMWARE_BALLOON=m