一、手动档
手动档就是从源码开始编译内核安装,好处是可以自己选择任意版本的内核,缺点就是耗时长,编译安装消耗系统资源
1.1、获取 kernel 源码
这世界上最伟大的 Linux 内核源码下载地址是 kernel 官网,选择一个稳定版本下载即可
1.2、解压并清理
官方要求将其解压到 /usr/src 目录,其实在哪都可以,为了规范一点索性也解压到此位置,然后为了防止编译残留先做一次清理动作
# 下载内核源码 wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.1.tar.xz # 解压并移动到 /usr/src tar -Jxvf linux-6.4.1.tar.xz mv linux-6.4.1 /usr/src/kernels # 执行清理(没 gcc 的要装一下) cd /usr/src/kernels/linux-6.4.1 make mrproper && make clean
1.3、生成编译配置表
kernel 在编译时需要一个配置文件(.config),用于描述开启哪些特性等,该文件一般可通过一下四种途径获得:
复制当前系统编译配置表,即 cp /boot/config-xxx .config;如果系统有多个内核,那么根据版本号选择最新的即可
使用 make defconfig 命令获取当前系统编译配置表,该命令会自动写入到 .config 中
使用 make localmodconfig 命令开启交互模式,然后根据提示生成编译配置表
使用 make oldconfig 命令根据旧的编译配置表生成新的编译配置表,刚方式会直接读取旧的便已配置表,并在以前没有设定过的配置时会自动开启交互模式
这里采用最后一种方式生成
1.4、编译并安装
内核配置表生成完成后便可进行编译和安装(需要安装 bc、openssl-devel等)
make make modules make modules_install make install
最后执行重启验证即可,验证成功后可删除旧的内核
rpm -qa | grep kernel
二、自动档
相对于手动档编译安装,CentOS 还可以通过使用 elrepo 源的方式直接安装最新稳定版 kernel,脚本如下
For RHEL-7, SL-7 or CentOS-7:
# Import the public key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # To install ELRepo for RHEL-7, SL-7 or CentOS-7 yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm # install kernel yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y # modify grub grub2-set-default 0 # reboot reboot
For RHEL-8 or CentOS-8:
# Import the public key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # To install ELRepo for RHEL-8 or CentOS-8 yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm # install kernel yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y # modify grub grub2-set-default 0 # reboot reboot