Linux升级内核--编译安装
读前须知:
有的新功能只有新版的linux内核才支持. 所以我们可能会遇到升级内核的情况
目前最新的稳定版本是5.9.14, 但是编译该版本的内核需要高版本的gcc, 生产环境gcc尽量保持与发行版本一致
所以我们本次环境以5.5.9为例
kernel官网:https://www.kernel.org/
kernel-5.5.9国内地址:https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/linux-5.5.9.tar.gz
1.下载kernel并解压
得提前准备14GB的空间, 解压内核要1G, 编译之后要占12GB
wget https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/linux-5.5.9.tar.gz
tar -xvf linux-5.5.9.tar.gz -C /usr/local
cd /usr/local/linux-5.5.9
2. 设置环境
主要是安装一些常用的依赖, 现在不安装,等编译时候报错再安装也一样的. 因为我安装过的, 所以知道有哪些依赖
yum install elfutils-libelf-devel bc ncurses-devel flex bison -y
3.配置内核
3.1
我们编译内核的原因是因为我们要定制它, 但是有好几千个选项, 我们不可能一个个去选, 我们可以参考其它发行版本的配置,做一点点修改
cp -p /boot/config-3.10.0-1127.el7.x86_64 /usr/local/linux-5.5.9/.config #版本要换成你自己的
3.2 编辑内核配置
CONFIG_XXX=y 的表示直接编译到二进制文件里的,
CONFIG_XXX=m 是编译为模块的
3.2.1 方法1 图形化
我们可以用make menuconfig配置
make menuconfig
4.3 安装内核
make install
至此安装结束, 接下来就是测试了
5.测试并设置默认启动内核
5.1测试
就直接重启,重启的时候选择我们刚才编译的内核
6. 内核rpm包
编译安装太麻烦,
也可以去下载编译好的rpm包来升级,
也可以自己编译好了做成RPM包,
也可以直接tar打包然后拷贝到模板环境再安装都是可行的
做RPM包的时候最好是参考官网给的SRPM来做
发行版本官网一般都有SRPM目录来放RPM源码包的
如centos7.8的内核SRPM包: https://archive.kernel.org/centos-vault/7.8.2003/os/Source/SPackages/kernel-3.10.0-1127.el7.src.rpm
感兴趣的可以自己去整整, 也可以参考我之前写的nginx制作为RPM包 ,虽然不够专业,但是够简单
特别说明: 生产环境尽量别升级内核, 除非你很想要某个新功能. 稳定大于一切!!!