应用背景
接触到docker与debian后,发现不仅docker中有内核限制,debian11内核都达到了5.* ,有的大佬还手动升级了6.* 。因为自己常用的是centos吗?而且加上centos7系列不在进行维护,于是想到自己升级虚拟机玩玩。
测试环境
系统 | 当前内核版本 | 大版本升级 |
---|---|---|
Centos7.9 | 3.10.0-1160 | 5.4.244-1 |
操作步骤
1、载入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
2、升级安装ELRepo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
3、载入elrepo-kernel元数据
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
4、查看可用rpm包
说明:
lt :long term support,长期支持版本;
ml:mainline,主线版本;
5、安装最新的kernel
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-lt.x86_64 -y
6、删除旧工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64 -y
7、安装新版本工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-lt-tools.x86_64 -y
8、查看内核启动顺序
[root@kairos ~]$awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.244-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.90.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-32dd032b222f426ba7010e9b84c83a87) 7 (Core)
说明:默认新内核是从头插入,默认启动顺序也是从0开始(当前顺序还未生效),或者使用:
[root@server-17 ~]# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-ca0f6fb3c5f24478abc0a2e275281d7a) 7 (Core)
其中文件 /etc/grub2.cfg 和 /boot/grub2/grub.cfg -+内容一致。
9、查看当前实际启动顺序
[root@kairos ~]$grub2-editenv list
saved_entry=CentOS Linux (3.10.0-1160.90.1.el7.x86_64) 7 (Core)
10、设置默认启动
[root@kairos ~]$grub2-set-default 'CentOS Linux (5.4.244-1.el7.elrepo.x86_64) 7 (Core)'
[root@kairos ~]$grub2-editenv list
saved_entry=CentOS Linux (5.4.244-1.el7.elrepo.x86_64) 7 (Core)
或者直接设置数值
[root@server-1 ~]# grub2-set-default 0 // 0代表当前第一行,也就是上面的4.20.12版本那一行内容
[root@server-1 ~]# grub2-editenv list
saved_entry=0
11、重启并检查
reboot
uname -r
感谢大佬:波LOVE仔