概述
大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。
但是,这只会升级内核到仓库中可用的最新版本 – 而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。
与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。
本文以CentOS 8为例。
参考文章:《详解如何在 CentOS 7 中安装或升级最新的内核》 作者:Matei Cezar
查看当前内核
uname -sr
安装
安装epel-release
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum install https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm -y
列出可用内核包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
安装最新的主线稳定内核
yum --enablerepo=elrepo-kernel install kernel-ml -y
修改grub文件
修改内核的启动顺序
编辑文件:/etc/default/grub,将GRUB_DEFAULT=saved
改为GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved #把这里的saved改成0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"
接下来还需要运行grub2-mkconfig命令来重新创建内核配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
重启机器
reboot
删除旧内核
查看系统中的全部内核
rpm -qa | grep kernel
在确认当前内核运行正常后,可删除多余的旧内核。个人仍建议至少保留一个旧内核,以避免万一。
删除不需要的内核
例如:
yum remove kernel-3.10.0-229.el7.x86_64 kernel-3.10.0-229.1.2.el7.x86_64