本文介绍了Alibaba Cloud Linux 3系统的ECS实例,安装了低于当前系统正在运行的内核版本后,系统未自动切换至该低版本的内核上运行的原因及解决方案。
问题描述
ID为aliyun_3_9_x64_20G_alibase_20231219.vhd或aliyun_3_9_x64_20G_dengbao_alibase_20231219.vhd的Alibaba Cloud Linux 3镜像,在安装了低于当前系统正在运行的内核版本后重启系统,但系统未自动切换至该低版本的内核上运行。
说明
您可以运行
uname -r命令查看当前内核的版本。您可以运行
cat /etc/image-id命令,查询镜像ID和版本。
问题原因
Alibaba Cloud Linux 3系统在启动时会从/boot/grub2/目录下加载文件,不会从/boot/grub2/目录下加载软连接,导致grub引导时无法通过软连接获取grubenv文件,从而默认引导最高版本的内核。
说明
/boot/grub2/下的grubenv是一个软连接,指向/boot/efi/EFI/alinux/目录下的grubenv文件。
解决方案
您可以根据您的ECS实例是否部署业务来选择相应的方案。
ECS实例中已部署业务,不方便更换镜像时,您可以通过方案一来解决该问题。
ECS实例中未部署业务,您可以通过方案二来解决该问题。
方案一:将grubenv软连接替换为/boot/efi/EFI/alinux/grubenv文件
执行以下命令,删除
grubenv软连接。sudo rm /boot/grub2/grubenv输入
y后按Enter键,确认删除。执行以下命令,将
/boot/efi/EFI/alinux目录下的grubenv文件复制到/boot/grub2/目录下。sudo cp /boot/efi/EFI/alinux/grubenv /boot/grub2/执行以下命令,重启系统。
sudo reboot
方案二:使用Alibaba Cloud Linux 3.2104 U9.1及以上版本镜像
更换镜像具体操作,请参见更换镜像。
镜像发布记录,请参见Alibaba Cloud Linux 3镜像发布记录。
该文章对您有帮助吗?