一个计算机技术爱好者与学习者

0%

好好学Linux:CentOS7内核升级

1. 前言

本文学习并实践CentOS7内核升级方法,备忘。

参考文档:

2. 查看系统版本和当前内核版本

1
2
cat /etc/redhat-release
uname -r

3. 导入ELRepo项目

1、导入public key

1
2
yum -y update
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2、安装ELRepo仓库的yum源

1
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

3、查看可用内核包

1
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

输出内容示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Available Packages
kernel-lt.x86_64 5.4.256-1.el7.elrepo elrepo-kernel
kernel-lt-devel.x86_64 5.4.256-1.el7.elrepo elrepo-kernel
kernel-lt-doc.noarch 5.4.256-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.256-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.256-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.256-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.256-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 6.5.2-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 6.5.2-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 6.5.2-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 6.5.2-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 6.5.2-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 6.5.2-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 6.5.2-1.el7.elrepo elrepo-kernel
perf.x86_64 5.4.256-1.el7.elrepo elrepo-kernel
python-perf.x86_64 5.4.256-1.el7.elrepo elrepo-kernel

长期维护版本为 kernal-lt ,最新主线稳定版为 kernal-ml ,这里选择 kernal-lt

4. 安装新版内核

1、安装新版内核 kernal-lt

1
yum  --enablerepo=elrepo-kernel  install  -y  kernel-lt

安装成功会输出:

1
2
3
4
5
6
7
Running transaction
Installing : kernel-lt-5.4.256-1.el7.elrepo.x86_64 1/1

Verifying : kernel-lt-5.4.256-1.el7.elrepo.x86_64 1/1

Installed:
kernel-lt.x86_64 0:5.4.256-1.el7.elrepo

2、查看可用内核版本及启动顺序

1
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg

输出内容示例:

1
2
3
4
5
0 : CentOS Linux 7 Rescue 05110432cb69b45d6c089de56b266fed (5.4.258-1.el7.elrepo.x86_64)
1 : CentOS Linux (5.4.256-1.el7.elrepo.x86_64) 7 (Core)
2 : CentOS Linux (4.19.188-10.el7.ucloud.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-05110432cb69b45d6c089de56b266fed) 7 (Core)
4 : CentOS Linux (0-rescue-8e8ed229018f0a9cfe91d03b023e4f67) 7 (Core)

5. 设置内核启动顺序

1、安装内核升级辅助工具 grub2-pc

1
yum install -y grub2-pc

2、设置默认内核

1
2
3
grub2-set-default 1
# or
grub2-set-default 'CentOS Linux (5.4.256-1.el7.elrepo.x86_64) 7 (Core)'

3、生成 grub 配置文件,重新创建内核配置

1
grub2-mkconfig -o /boot/grub2/grub.cfg

4、再次查看可用内核版本及启动顺序

1
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg

此时,CentOS Linux (5.4.256-1.el7.elrepo.x86_64) 7 (Core)的排序号会变成0。

5、修改grub配置

1
vim /etc/default/grub

修改 GRUB_DEFAULT 的值为 0 (默认为saved),其他参数不用变。

6. 重启系统

1、重启系统

1
reboot

2、查看当前内核版本

1
uname -r

以上,内核升级完成。

7. 删除旧内核(可选)

1、查看可用内核列表

1
rpm -qa | grep kernel

输出示例:

1
2
3
4
5
6
7
kernel-tools-libs-4.19.188-10.el7.ucloud.x86_64
kernel-4.19.188-10.el7.ucloud.x86_64
kernel-tools-4.19.188-10.el7.ucloud.x86_64
kernel-headers-4.19.188-10.el7.ucloud.x86_64
kernel-devel-4.19.188-10.el7.ucloud.x86_64
kernel-lt-5.4.256-1.el7.elrepo.x86_64
kernel-tools-libs-devel-4.19.188-10.el7.ucloud.x86_64

2、删除旧内核

1
yum remove -y kernel-4.19.188 kernel-devel-4.19.188 kernel-headers-4.19.188

3、删除旧版本工具包

1
yum remove kernel-tools-libs-devel-4.19.188-10 kernel-tools-4.19.188-10

PS:安装yum-utils 工具,当系统安装的内核大于3个时,会自动删除旧的内核版本

1
yum install -y  yum-utils

8. 安装新版本工具包(可选)

1、安装新版本工具包

1
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt-tools.x86_64

2、查看已安装内核和工具包

1
rpm -qa | grep kernel