前言
centos7默认的内核版本才3.10,诸如VXLAN、eBPF等特性无法体验,因此需要升级。目前(2022.02)Linux的内核版本已更新到5.16。
步骤
- 更新仓库
yum update -y
- 启用ELRepo仓库。ELRepo仓库是基于社区的用于企业级Linux仓库,提供对基于RH的linux发行版的支持。
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
- 查看可用的系统内核相关包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
- 安装最新的主线稳定版内核
yum --enablerepo=elrepo-kernel install kernel-ml
- 修改
/etc/default/grub
,设置GRUB_DEFAULT=0
(GRUB初始化页面的第一个内核将作为默认内核) - 创建内核配置,使上一步骤生效
grub2-mkconfig -o /boot/grub2/grub.cfg
- 重启(
shutdown -r now
)后使用uname -r
查看内核版本(如果还是3.10的内核版本,见下一节补充内容) - 卸载旧内核(可选)
rpm -qa | grep kernel # 使用yum remove 卸载所有上述结果中老版本kernel相关程序 # yum remove -y kernel-3.10.0-1160.el7.x86_64 kernel-tools-libs-3.10.0-1160.45.1.el7.x86_64 kernel-headers-3.10.0-1160.45.1.el7.x86_64 kernel-3.10.0-1160.45.1.el7.x86_64 kernel-tools-3.10.0-1160.45.1.el7.x86_64
- 重启
shutdown -r now
补充:手动指定内核版本
如果重启过后的内核版本还是3.10,可以手动指定内核版本,步骤如下:
- 查看当前默认启动内核版本
grub2-editenv list
- 查看当前系统已安装内核版本
cat /boot/grub2/grub.cfg | grep -v rescue | grep ^menuentry # 输出结果示例 # menuentry 'CentOS Linux (5.16.10-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.16.10-1.el7.elrepo.x86_64-advanced-56b3d73b-0e99-4b69-8eef-3162bc97c494' { # menuentry 'CentOS Linux (3.10.0-1160.53.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.53.1.el7.x86_64-advanced-56b3d73b-0e99-4b69-8eef-3162bc97c494' { # menuentry 'CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-56b3d73b-0e99-4b69-8eef-3162bc97c494' {
- 指定内核版本
grub2-set-default 'CentOS Linux (5.16.10-1.el7.elrepo.x86_64) 7 (Core)'
- 重启
shutdown -r now
- 查看内核版本
uname -r