Linux内核升级

对于 Ubuntu 等 apt 系的发行版来说,一般不需要升级内核版本。

如果你使用的是 CentOS 等 rpm 系的发行版,内核版本一般较低,某些情况下需要升级内核版本。

查看当前内核

image-20210701113307608

安装ELRepo 镜像

1
2
3
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install -y https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm # CentOS 7
yum install -y https://www.elrepo.org/elrepo-release-8.1-1.el8.elrepo.noarch.rpm # CentOS 8

由于GFW,使用 elrepo 官方源可能速度较慢,可将 baseurl 修改为国内镜像站地址。

1
2
3
4
5
6
7
8
# RHEL8,CentOS8
yum install -y https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
# RHEL7,SL7,CentOS7
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# RHEL6,SL6,CentOS6
yum install -y https://www.elrepo.org/elrepo-release-6.el6.elrepo.noarch.rpm
# 建议先备份 /etc/yum.repos.d/elrepo.repo
cp /etc/yum.repos.d/elrepo.repo /etc/yum.repos.d/elrepo.repo.bak

然后编辑/etc/yum.repos.d/elrepo.repo文件,在mirrorlist=开头的行前面加#注释掉;并将elrepo.org/linux替换为mirrors.tuna.tsinghua.edu.cn/elrepo

1
2
sed -i 's#elrepo.org/linux#mirrors.tuna.tsinghua.edu.cn/elrepo#g' /etc/yum.repos.d/elrepo.repo
sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/elrepo.repo

安装内核

安装长期支持内核(lt = long time)

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

安装稳定主线内核kernel-ml(ml=mainline)

1
yum --disablerepo=\* --enablerepo=elrepo-kernel -y install kernel-ml

删除旧版本工具包

1
2
yum -y remove kernel-tools-libs.x86_64 kernel-tools.x86_64
yum -y remove kernel-headers.x86_64

安装新版本工具包

1
2
3
4
# 长期支持内核
yum --disablerepo=\* --enablerepo=elrepo-kernel -y install kernel-lt-tools kernel-lt-devel kernel-lt-headers -y
# 稳定主线内核
yum --disablerepo=\* --enablerepo=elrepo-kernel -y install kernel-ml-tools kernel-ml-devel kernel-ml-headers -y

修改内核启动顺序

查看内核插入顺序

1
2
3
4
5
grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2

CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-2b92643a629144ceadb7403c0d9f3683) 7 (Core)

默认新内核是从头插入,默认启动顺序也是从 0 开始。

image-20210701115438475

查看当前实际启动顺序

1
2
3
grub2-editenv list

saved_entry=CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)

image-20210701115535004

设置默认启动

1
grub2-set-default 'CentOS Linux (5.13.0-1.el7.elrepo.x86_64) 7 (Core)'

最后重启检查:

1
2
reboot
uname -r

image-20210701115723174

image-20210701115838455