CentOS 7 yum更新long-term内核
虽然CentOS8就结束了,但2022年的今天,7仍然有较多服务器跑着还未迭代新版本。在Rocky Linux没有得到充分验证前我们还是使用7或者ubuntu 20.xx系列比较稳妥。本文给予仍然在使用7但是内核运行在3.x又不想自己编译新版内核的人另一种选择那就是使用elrepo.org提供的内核,直接使用yum安装即可。
首先运行如下命令:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm #系统为centos8时请将地址中的7改成8
将安装CentOS 7内核更新库,然后可以使用清单命令列表当前可供更新的内核版本,内核版本分两种,一种为long-term版一种为mainline版本,推荐生产业务服务器更新前者
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
截止本文发布时,仓库内提供的版本如下:
kernel-lt.x86_64 5.4.168-1.el7.elrepo kernel-ml.x86_64 5.15.11-1.el7.elrepo
我们安装long-term版本
yum --enablerepo=elrepo-kernel install kernel-lt
下载安装后,重启即可在系统加载时选择从5.4内核版本启动,如您的服务器为云服务器则需要继续以下步骤后再重启
首先查看当前系统上已安装到grub2启动器里的内核清单
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.168-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.49.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-50166bfb77424b719127a9766ed25ad3) 7 (Core)可以看到按序号顺序0开始依次排列,直接使用命令指定序号可以指定系统下次重启后使用的内核
grub2-set-default 0
也可以直接编译grub配置文件来实现
vi /etc/default/grub 修改参数GRUB_DEFAULT=0 然后重新生成grub配置文件 grub2-mkconfig -o /boot/grub2/grub.cfg
重启即可
附:系统为centos8时,新安装的内核会默认设置为下一次启动,具体可通过如下命令查看
grubby --default-kernel
列出当前安装的所有内核
grubby --info=ALL > index=0 kernel="/boot/vmlinuz-5.4.171-1.el8.elrepo.x86_64" args="ro resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap $tuned_params" root="/dev/mapper/rl-root" initrd="/boot/initramfs-5.4.171-1.el8.elrepo.x86_64.img $tuned_initrd" title="Rocky Linux (5.4.171-1.el8.elrepo.x86_64) 8.5 (Green Obsidian)" id="712462ef4bd7466da41d0aa76548c3e1-5.4.171-1.el8.elrepo.x86_64" index=1 kernel="/boot/vmlinuz-4.18.0-348.7.1.el8_5.x86_64" args="ro resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap $tuned_params" root="/dev/mapper/rl-root" initrd="/boot/initramfs-4.18.0-348.7.1.el8_5.x86_64.img $tuned_initrd" title="Rocky Linux (4.18.0-348.7.1.el8_5.x86_64) 8.5 (Green Obsidian)" id="712462ef4bd7466da41d0aa76548c3e1-4.18.0-348.7.1.el8_5.x86_64"
设置下次启动内核
grubby --set-default /boot/vmlinuz-5.4.171-1.el8.elrepo.x86_64
附:删除老旧内核
查看系统中内核(本例中显示的版本为系统自带的3.10和更新后的5.4)
rpm -qa | grep kernel kernel-tools-libs-3.10.0-1160.49.1.el7.x86_64 kernel-tools-3.10.0-1160.49.1.el7.x86_64 kernel-3.10.0-1160.49.1.el7.x86_64 kernel-lt-5.4.168-1.el7.elrepo.x86_64
删除指定版本内核
yum remove kernel-3.10.0-1160.49.1.el7.x86_64