阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

聊一聊CentOS 7升级内核方案

174次阅读
没有评论

共计 1935 个字符,预计需要花费 5 分钟才能阅读完成。




CentOS 7 自带的内核版本还停留在 3.x,如果某些软件对 Linux 内核版本有要求,就不得不升级内核来支持,比如 Google 的 BBR 加速,要求 Linux 内核大于4.9 以上,这篇文章来聊一聊 CentOS 7 内核升级的话题。

内核版本选择

我们可以从 https://www.kernel.org/ 官网下载指定内核源码并进行编译升级,但是此步骤较为繁琐,不在此次讨论范围。

如果我们采用 rpm 包进行升级,可以使用别人编译好的包,其中 elrepo 提供的内核升级包是比较值得信赖的,内核地址如下:https://elrepo.org/linux/kernel/el7/x86_64/RPMS/

但是打开 elrepo 的网站我们只能看到 5.15.x5.4.x(随着时间的推移可能会有变化)两个版本,标识了 mllt

  • ml代表主线版本,总是保持主线最新的内核
  • lt代表长期支持版本,支持周期更长

再通过 https://www.kernel.org 官网对照下上面两个版本的生命周期,可以看到 5.15 支持到 2023 年,而 5.4 支持到 2025 年。

如果你要追求最新的版本,直接选择带 ml 的 rpm 包即可,如果你要追求稳定且更长的支持周期,直接选择 lt 版本即可。

在线升级

# 导入 ELRepo 公钥
wget https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm --import RPM-GPG-KEY-elrepo.org
#安装 ELRepo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
#升级最新内核
yum --enablerepo=elrepo-kernel install kernel-ml -y
#升级长期支持的 lt 内核(二选一即可)yum --enablerepo=elrepo-kernel install kernel-lt -y

离线升级

也可以手动下载 rpm 的内核进行离线升级,以升级 lt 内核为例,方法如下:

# 下载内核(随着时间推移,链接可能失效)
wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.160-1.el7.elrepo.x86_64.rpm
#备用下载地址
wget https://wget.ovh/linux/kernel/kernel-lt-5.4.160-1.el7.elrepo.x86_64.rpm
#升级内核
rpm -ivh kernel-lt-5.4.160-1.el7.elrepo.x86_64.rpm

切换内核

输入命令 awk -F\''$1=="menuentry "{print i++" : "$2}' /boot/grub2/grub.cfg 查看 grub2 引导序号。

[root@test ~]# awk -F\''$1=="menuentry "{print i++" : "$2}' /boot/grub2/grub.cfg
0 : CentOS Linux (5.4.160-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-face32e3e9d448e2a0403204f18369d9) 7 (Core)

可以看到序号 0 是我们刚刚安装的内核,我们将其设置为默认启动内核:

# 设置默认启动内核
grub2-set-default 0
#重启服务器生效
reboot

某些服务商可能会遇到设置不生效的问题,我们可采取删除旧内核,保留新内核的做法。需要重启服务器并通过 VNC 连接(请咨询服务商)并在开机的启动界面选择新内核(5.4)进入,通过以下方法删除旧内核:

# 查看当前内核,确保是以新内核启动
uname -a
#查看系统中全部内核
rpm -qa | grep kernel
#移出不需要的内核
yum remove kernel-3.10.0-229.4.2.el7.x86_64

如果系统中只有一个内核,在下次启动的时候就会默认选择该内核启动。

注意

升级内核有分险,以上方法不保障升级内核一定成功,生产环境请谨慎操作,如果升级后内核无法启动,可通过 VNC 连接服务器(咨询服务商),然后选择正常的内核启动,并删除异常的内核进行恢复。

总结

  • ml代表主线版本,总是保持主线最新的内核
  • lt代表长期支持版本,支持周期更长
  • 内核升级失败,可通过 VNC 连接选择正常的内核进入系统
  • elrepo 会经常删除旧的内核,建议定期从 elrepo 网站将内核下载进行保存,以便后续使用

以上部分内容参考了:Linux Kernel 5.14.x 编译版

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1935字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中