Alibaba Cloud Linux 3无法切换低版本内核的解决方案

本文介绍了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文件

  1. 执行以下命令,删除grubenv软连接。

    sudo rm /boot/grub2/grubenv
  2. 输入y后按Enter键,确认删除。

  3. 执行以下命令,将/boot/efi/EFI/alinux目录下的grubenv文件复制到/boot/grub2/目录下。

    sudo cp /boot/efi/EFI/alinux/grubenv /boot/grub2/
  4. 执行以下命令,重启系统。

    sudo reboot

方案二:使用Alibaba Cloud Linux 3.2104 U9.1及以上版本镜像

更换镜像具体操作,请参见更换镜像

镜像发布记录,请参见Alibaba Cloud Linux 3镜像发布记录