引言
默认情况下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-ml 和 kernel-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
重启并验证
[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安装
安装完成之后可用按上面的方式来进行设置默认内核