蔡妈看看

我们不是代码的搬运工,我们只生产代码

CentOS7升级内核至最新

1. 载入公钥

[root@centos7-template ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2. 升级安装ELRepo

  • CentOS7
[root@centos7-template ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
  • CentOS8
[root@centos7-template ~]# rpm -Uvh https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm

3. 载入elrepo-kernel元数据

[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel repolist

4. 查看可用的rpm包

[root@centos7-template ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
kernel.x86_64                                              3.10.0-1062.el7                                @anaconda
kernel.x86_64                                              3.10.0-1062.9.1.el7                            @updates
kernel-headers.x86_64                                      3.10.0-1062.9.1.el7                            @updates
可安装的软件包
kernel-lt.x86_64                                           4.4.211-1.el7.elrepo                           elrepo-kernel
kernel-lt-devel.x86_64                                     4.4.211-1.el7.elrepo                           elrepo-kernel
kernel-lt-doc.noarch                                       4.4.211-1.el7.elrepo                           elrepo-kernel
kernel-lt-headers.x86_64                                   4.4.211-1.el7.elrepo                           elrepo-kernel
kernel-lt-tools.x86_64                                     4.4.211-1.el7.elrepo                           elrepo-kernel
kernel-lt-tools-libs.x86_64                                4.4.211-1.el7.elrepo                           elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                          4.4.211-1.el7.elrepo                           elrepo-kernel
kernel-ml-devel.x86_64                                     5.4.15-1.el7.elrepo                            elrepo-kernel
kernel-ml-doc.noarch                                       5.4.15-1.el7.elrepo                            elrepo-kernel
kernel-ml-headers.x86_64                                   5.4.15-1.el7.elrepo                            elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                          5.4.15-1.el7.elrepo                            elrepo-kernel
  • 说明:
    • lt :long term support,长期支持版本;
    • ml:mainline,主线版本;

5. 安装最新版本的kernel

[root@centos7-template ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install  kernel-ml.x86_64  -y

6. 删除旧版本工具包

[root@centos7-template ~]# yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64  -y

7. 安装新版本工具包

[root@centos7-template ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64  -y

8. 查看内核插入顺序

[root@centos7-template ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.15-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1062.9.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-aea3d3917c2dcd4a83f6ef4c895bcf4c) 7 (Core)
  • 说明:默认新内核是从头插入,默认启动顺序也是从0开始(当前顺序还未生效),或者使用:
[root@server-17 ~]# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
CentOS Linux (5.4.15-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1062.9.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-aea3d3917c2dcd4a83f6ef4c895bcf4c) 7 (Core)

其中文件 /etc/grub2.cfg/boot/grub2/grub.cfg 内容一致。

9. 查看当前实际启动顺序

[root@centos7-template ~]# grub2-editenv list
saved_entry=CentOS Linux (3.10.0-1062.9.1.el7.x86_64) 7 (Core)

10. 设置默认启动

[root@centos7-template ~]# grub2-set-default 'CentOS Linux (5.4.15-1.el7.elrepo.x86_64) 7 (Core)'
[root@centos7-template ~]# grub2-editenv list
saved_entry=CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core)

或者直接设置数值

[root@centos7-template ~]# grub2-set-default 0  // 0代表当前第一行,也就是上面的4.20.12版本那一行内容
[root@centos7-template ~]# grub2-editenv list
saved_entry=0

11. 重启并检查

[root@centos7-template ~]# reboot 
[root@centos7-template ~]# uname -r 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注