准备
查看系统版本
cat /etc/redhat-release
看当前操作系统版本信息
cat /proc/version
查看版本当前操作系统内核信息
uname -a
输出
Linux 140 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
.x86_64 硬件平台
140 节点名称
3.10.0-1127.13.1.el7.x86_64 操作系统发行编号
GNU/Linux 操作系统名称
#1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux 系统版本和时间
uname -r 查看内核版本
查看已安装的内核
rpm -qa | grep kernel
centos 7.X系统自带的3.10.x内核存在一些bugs,例如导致运行的docker、kubernetes不稳定,需要升级内核到4.4版本以上
升级内核-小版本升级
查看当前安装和可升级的版本
yum list kernel
升级
yum update kernel -y
重启验证
reboot
uname -a
升级内核-大版本升级
更新仓库
yum -y update
导入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
启用 ELRepo 仓库
ELRepo 仓库是基于社区的用于企业级 Linux 仓库
提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持
centos8
yum install https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm
centos7
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
或者 yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
载入elrepo-kernel元数据
yum --disablerepo=* --enablerepo=elrepo-kernel repolist
查看已安装和可安装系统内核包
yum --disablerepo=* --enablerepo=elrepo-kernel list kernel*
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available 仅查看可安装的内核
–enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换。
安装最新版Kernel
yum --disablerepo=* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
kernel-ml 中的ml是英文【mainline stable】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。
kernel-lt 中的lt是英文【long term support】的缩写,elrepo-kernel中罗列出来的长期支持版本。
也可指定安装版本
设置 grub2(设置为默认启动选项并重启)
查看系统上的所有内核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
### centos8 已经改变 不能用这个查看
设置 grub2
grub2-set-default 0
0 来自上一步的 awk 命令
或者编辑/etc/default/grub设置 GRUB_DEFAULT=0,表示使用上一步的 awk 命令显示的编号为 0 的内核作为默认内核
通过 gurb2-mkconfig 命令创建 grub2 的配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
验证
uname -r
删除旧内核
通过 yum remove 命令或通过 yum-utils 工具
查看系统中全部的内核
rpm -qa | grep kernel
删除旧内核的 RPM 包
yum remove kernel-3.10.0-957.1.3.el7.x86_64 kernel-3.10.0-693.el7.x86_64 kernel-tools-3.10.0-957.1.3.el7.x86_64
或 rpm -e
通过 yum-utils 工具
如果安装的内核不多于 3 个,yum-utils 工具不会删除任何一个。只有在安装的内核大于 3 个时,才会自动删除旧内核
yum install yum-utils
package-cleanup --oldkernels
删除旧版本的内核工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64
安装新版本工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
>>>>>>>>>>>>>>>
后续操作
更新内核
kernel-ml 不支持使用 yum -y update 直接更新内核。
卸载旧内核
更新完重启之后,可使用 yum -y remove kernel-ml-<完整的版本号> 来卸载旧内核。
版本号可通过 rpm -qa | grep kernel 获取。