Linux内核升级

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

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

查看当前内核

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

bash

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 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

bash

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)

bash

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

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

bash

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

删除旧版本工具包

bash

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

安装新版本工具包

bash

# 长期支持内核
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

查看内核插入顺序

bash

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 开始。

查看当前实际启动顺序

bash

grub2-editenv list

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

设置默认启动

bash

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

最后重启检查:

bash

reboot
uname -r