文章目录
- 引言
- 安装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-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
除此之外,还可以手动编辑/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安装
安装完成之后可用按上面的方式来进行设置默认内核