Rocky8.10 升级Kernel 6.10.7
- 1. 起因
- 2. 升级过程
- 2.1 二进制安装
- 2.2 elrepo升级安装
- 2.3 内网升级
- 3. 升级过程中的意外
- 3.1 意外
- 3.2 解决方法
1. 起因
为了修复CVE-2024-36971,公司要求将Rocky8.10的Kernel升级到最新.
其实升级Kernel应该是比较简单的事情,但这次却搞得一波三折
2. 升级过程
2.1 二进制安装
- 安装依赖包
yum install -y gcc kernel-devel cmake gcc-c++
yum install -y ncurses-devel bison flex elfutils-libelf-devel openssl openssl-devel
- 下载kernel包
访问https://kernel.org/
或者直接wget下载
mkdir kernel
cd kernel
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.10.7.tar.xz
tar xf linux-6.10.7.tar.xz
cd linux-6.10.7/
make menuconfig
修改.config
.config 里将CONFIG_DEBUG_INFO_BTF和CONFIG_SYSTEM_TRUSTED_KEYS值改为空
开始编译安装
make -j$(nproc)
make modules_install
make install
可以在每一步结束之后都执行一个
echo $?
来确认是否有错误
重启
reboot
等待启动完毕,确认版本升级成功
uname -r
2.2 elrepo升级安装
先决条件:
- 确保BaseOS源和AppStream源正常
- 确保可以连接公网
yum -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
yum --enablerepo="elrepo-kernel" install -y kernel-ml-headers --allowerasing
yum --enablerepo="elrepo-kernel" install -y kernel-ml kernel-ml-devel kernel-ml-tools kernel-ml-tools-libs kernel-ml-tools-libs-devel --allowerasing
重启
reboot
等待重启完毕,确认版本是否正常.
uname -r
2.3 内网升级
很多公司服务器无法直接连接外网.可以先在一台同版本的服务器上先更新,更新时保存下载的rpm
修改/etc/yum.conf,添加以下行
keepcache=1
cachedir=/root/rpms
keepcachepackages=1
更新安装后会在对应目录保存安装时涉及到的所有rpm包
用tar命令将这些rpm打包
cd /root/rpms/elrepo-kernel-e80375c2d5802dd1/packages/
tar czvf kernel-6.10.tar.gz *.rpm
将kernel-6.10.tar.gz上传到内网服务器,再使用yum进行安装就可以了
mkdir kernel
mv kernel-6.10.tar.gz kernel/
cd kernel
tar xf kernel-6.10.tar.gz
yum install -y ./kernel-*.rpm --allowerasing
安装完毕后直接重启即可
3. 升级过程中的意外
3.1 意外
由于我们有400多台环境部署在Esxi的环境上.一样的步骤和包,在阿里云,腾讯云,Openstack上都正常,但Esxi上重启出现以下报错:
error:../../grub-core/loader/i386/efi/linux.c:385:(hd0,gpt2)/umlimuz-6.10.?
has inualid signature.
error:../../grub-core/loader/i386/efi/linux.c:256:you need to load the kernel
first.
Press any key to continue...
3.2 解决方法
-
去掉安全引导
去掉了其实已经可以进入系统了,但这时console是黑屏无法登陆操作的 -
显卡 开启3D支持
重新启动vm就能正常工作了
这开启3D支持坑了我10多个小时…