CentOS升级Linux内核

本文最后更新于:June 12, 2019 pm

CentOS7.6升级5.1.9的Linux内核,如果提示权限不足记得切换root用户。

Ubunut18.04版本请移步这里

1、yum升级内核

1
2
3
4
5
6
7
8
# 查看当前内核版本
uname -r

# 更新yum源
yum update -y

# 升级yum源中的最新版内核
yum install -y kernel

2、升级ELRepo库提供的内核

1
2
3
4
# 导入 ELRepo 仓库的KEY
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 使用yum安装 elrepo的仓库包
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。

ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。

1
2
# 查看可用的系统内核包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

1
2
# 安装最新版内核
yum --enablerepo=elrepo-kernel install kernel-ml

1
2
# 查看当前一共安装了多少个内核
cat /etc/grub2.cfg | grep menuentry | awk '{print $2$4$5$6}'

1
2
# 或者这样,找到网上的一个大佬的正则表达式,比我这种菜鸡强多了
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

注意这个升级的内核和通过yum升级的不同,yum升级内核之后会把新内核作为启动的默认内核,而这样升级并不会,因此我们需要手动更改默认的启动内核。

1
2
# 将GRUB_DEFAULT从saved改为0
vim /etc/default/grub

1
2
3
4
# 使用grub2重新生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
# 如果是使用uefi引导安装启动的话目录应该是下面这个
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

重启之后就会看到默认启动的是新内核

3、删除旧内核

1
2
3
4
5
# 查看系统中的所有内核相关包
rpm -qa | grep kernel

# 使用yum卸载
yum remove <package>

1
2
# 删除最旧的那个内核
yum remove kernel-3.10.0-957.el7.x86_64 kernel-devel-3.10.0-957.el7.x86_64

留一个最新的yum源的内核以防万一。