Linux系统的ECS实例内部操作系统启动失败,提示“UEFI Interactive Shell”错误怎么办?

本文介绍Linux系统的ECS实例内部操作系统启动失败,提示“UEFI Interactive Shell”错误的问题原因和解决方案。

问题现象

启动Linux系统的ECS实例时,实例内部操作系统启动失败,通过VNC远程连接实例时提示“UEFI Interactive Shell”错误。

UEFI Interactive Shell

问题原因

出现UEFI Interactive Shell表示通过UEFI模式启动ECS实例失败,可能有以下原因:

  • 实例的镜像不支持UEFI,但是镜像的启动模式被修改为UEFI。该错误通常出现在启动自定义镜像创建的ECS实例时,您可以通过修改镜像的启动方式来解决该问题,具体操作,请参见修改镜像的启动方式为BIOS

  • 实例的镜像支持UEFI,但是镜像内部UEFI固件损坏。您可以通过修复UEFI固件来解决该问题。具体操作,请参见修复UEFI固件

解决方案

您可以参考以下步骤,修改镜像的启动模式或修复UEFI固件来解决该问题。

修改镜像的启动模式为BIOS

如果不需要使用UEFI启动模式或镜像本身不支持UEFI,您可以将自定义镜像启动模式修改为BIOS,并重新使用该镜像创建实例以解决该问题。

  1. 释放该异常ECS实例。

    具体操作,请参见释放实例

  2. 修改镜像的启动方式为BIOS。

    具体操作,请参见修改镜像的启动模式

  3. 使用该镜像创建实例。

    具体操作,请参见使用自定义镜像创建实例

  4. 远程连接实例,若可以正常连接,并且不再出现“UEFI Interactive Shell”错误,说明该问题已解决。

    具体操作,请参见连接方式概述

修复UEFI固件

如果该实例规格和镜像支持UEFI,并且您需要使用UEFI模式启动,请参考以下步骤修复UEFI固件。

  1. 卸载异常ECS实例的系统盘,并将该磁盘作为数据盘挂载到正常ECS实例中。

    具体操作,请参见如何恢复系统盘数据?的步骤一~步骤三。

  2. 查看异常ECS实例已安装的efi安装包和/boot/efi/EFI/centos目录下的efi固件是否完整。

    1. 执行如下命令,查看已安装的efi安装包是否完整。

      rpm -qa |grep -i efi

      返回结果类似如下所示。

      rpm包

      您可以将返回结果与相同Linux发行版的ECS实例中efi安装包进行对比:

      • 若已安装的efi安装包相同,请继续执行步骤b

      • 若已安装的efi安装包有缺失,请执行sudo yum install命令安装对应的efi安装包。

        如安装grub2-efi-x64安装包命令如下。

        sudo yum install grub2-efi-x64-2.02-0.87.el7.centos.6.x86_64
    2. 执行如下命令,查看/boot/efi/EFI/centos目录下的efi固件是否完整。

      cd /boot/efi/EFI/centos && ll

      返回结果类似如下所示。

      efi固件

      您可以将返回结果与相同Linux发行版的ECS实例中efi固件进行对比:

      • 若已安装的efi固件相同,请继续执行步骤3

      • 若已安装的efi固件有缺失,请执行sudo yum install命令安装对应的efi固件安装包。

        建议您重新安装grub2-efi-x64安装包,命令如下。

        sudo yum install grub2-efi-x64-2.02-0.87.el7.centos.6.x86_64
  3. 在异常ECS实例中恢复挂载系统盘。

    具体操作,请参见如何恢复系统盘数据?的步骤五。

  4. 远程连接实例,若可以正常连接,并且不再出现“UEFI Interactive Shell”错误,说明该问题已解决。

    具体操作,请参见连接方式概述