文章目录

  • 引言
  • 安装elrepo并修改为默认从清华源下载
  • 查看可用内核安装包
  • 更新内核
  • 卸载多余的内核
  • 安装稍微没那么新版本的内核


引言

默认情况下Centos7.9的内核是3.10,咱们给他升级一下

[root@cn4 ~]# uname -r
3.10.0-1160.el7.x86_64

如果觉得我下面的步骤不太详细也可以参考GitHub上别人做法

安装elrepo并修改为默认从清华源下载

[root@cn4 ~]# yum -y install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
[root@cn4 ~]# sed -i "s@mirrorlist@#mirrorlist@g" /etc/yum.repos.d/elrepo.repo ;sed -i "s@elrepo.org/linux@mirrors.tuna.tsinghua.edu.cn/elrepo@g" /etc/yum.repos.d/elrepo.repo

如果报错可用尝试执行导入公钥(我这边没有import直接安装成功了)

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

查看可用内核安装包

[root@cn4 ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" repolist
[root@cn4 ~]# yum  --disablerepo="*"  --enablerepo="elrepo-kernel"  list  available
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.coreix.net
Available Packages
kernel-lt.x86_64                                                                              5.4.224-1.el7.elrepo                                                              elrepo-kernel
kernel-lt-devel.x86_64                                                                        5.4.224-1.el7.elrepo                                                              elrepo-kernel
kernel-lt-doc.noarch                                                                          5.4.224-1.el7.elrepo                                                              elrepo-kernel
kernel-lt-headers.x86_64                                                                      5.4.224-1.el7.elrepo                                                              elrepo-kernel
kernel-lt-tools.x86_64                                                                        5.4.224-1.el7.elrepo                                                              elrepo-kernel
kernel-lt-tools-libs.x86_64                                                                   5.4.224-1.el7.elrepo                                                              elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                             5.4.224-1.el7.elrepo                                                              elrepo-kernel
kernel-ml-devel.x86_64                                                                        6.0.8-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-doc.noarch                                                                          6.0.8-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-headers.x86_64                                                                      6.0.8-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-tools.x86_64                                                                        6.0.8-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-tools-libs.x86_64                                                                   6.0.8-1.el7.elrepo                                                                elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                             6.0.8-1.el7.elrepo                                                                elrepo-kernel
perf.x86_64                                                                                   5.4.224-1.el7.elrepo                                                              elrepo-kernel
python-perf.x86_64                                                                            5.4.224-1.el7.elrepo                                                              elrepo-kernel

kernel-mlkernel-lt 二者的区别:
kernel-ml软件包是根据Linux Kernel Archives的主线稳定分支提供的源构建的。 内核配置基于默认的RHEL-7配置,并根据需要启用了添加的功能。 这些软件包有意命名为kernel-ml,以免与RHEL-7内核发生冲突,因此,它们可以与常规内核一起安装和更新。
kernel-lt包是从Linux Kernel Archives提供的源代码构建的,就像kernel-ml软件包一样。 不同之处在于kernel-lt基于长期支持分支,而kernel-ml基于主线稳定分支。
在 ELRepo中有两个内核选项,一个是 kernel-ml(主线最新版本)一个是kernel-lt(长期支持版),采用长期支持版本(kernel-lt),更加稳定一些。

更新内核

[root@cn4 ~]# yum  -y --enablerepo=elrepo-kernel  install  kernel-lt
# 安装最新lt版本
[root@cn4 ~]# yum  -y --enablerepo=elrepo-kernel  install  kernel-ml
# 安装最新mt版本

查看已安装的内核

[root@cn4 ~]# rpm -qa|grep kernel
kernel-tools-libs-3.10.0-1160.el7.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
kernel-lt-5.4.224-1.el7.elrepo.x86_64	#刚安装的
kernel-3.10.0-1160.el7.x86_64
kernel-headers-3.10.0-1160.el7.x86_64
kernel-devel-3.10.0-1160.el7.x86_64
kernel-ml-6.0.8-1.el7.elrepo.x86_64		#刚安装的
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64

查看系统可用内核

[root@cn4 ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.4.224-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (6.0.8-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-d198561fe8324c869a4020089da59599) 7 (Core)

从上往下是0开始数,我这边选择6.0.8的内核,所以是1

[root@cn4 ~]# grub2-set-default 1

除此之外,还可以手动编辑/etc/default/grub来修改

[root@cn4 ~]# sed -i 's/GRUB_DEFAULT=saved/GRUB_DEFAULT=1/' /etc/default/grub
# 或者直接vim文件找到GRUB_DEFAULT,将saved(默认是这个)修改为需要引导的数字

# 然后重新生成grub配置文件
[root@cn4 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

重启并验证

[root@cn4 ~]# init 6
[root@cn4 ~]# uname -r
6.0.8-1.el7.elrepo.x86_64

卸载多余的内核

为防止删除依赖,使用rpm卸载

[root@cn4 ~]# rpm -qa|grep kernel
kernel-tools-libs-3.10.0-1160.el7.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
kernel-lt-5.4.224-1.el7.elrepo.x86_64
kernel-3.10.0-1160.el7.x86_64
kernel-headers-3.10.0-1160.el7.x86_64
kernel-devel-3.10.0-1160.el7.x86_64
kernel-ml-6.0.8-1.el7.elrepo.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
[root@cn4 ~]# rpm -e kernel-3.10.0-1160.el7.x86_64 --nodeps 
[root@cn4 ~]# rpm -qa|grep kernel
kernel-tools-libs-3.10.0-1160.el7.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
kernel-lt-5.4.224-1.el7.elrepo.x86_64
kernel-headers-3.10.0-1160.el7.x86_64
kernel-devel-3.10.0-1160.el7.x86_64
kernel-ml-6.0.8-1.el7.elrepo.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64

安装稍微没那么新版本的内核

去这个网站 需要同时安装三个包,最好一并下载之后使用rpm安装

centos8内核 centos7.9内核_新版本


安装完成之后可用按上面的方式来进行设置默认内核