为什么使用 Application Migration Service 或灾难恢复服务迁移的 EC2 Linux 实例未通过实例状态检查?

2 分钟阅读
0

我的 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例未通过实例状态检查。我使用 AWS Application Migration Service 或 AWS 灾难恢复服务迁移了实例。

解决方法

**注意:**以下解决方法包括了实例状态检查失败的最常见原因。Application Migration Service 转换服务器可对启动加载程序进行更改、注入虚拟机监控器驱动程序并安装云工具。在实例类型大小适当的情况下,因内存耗尽导致实例状态检查失败的情况并不常见。文件系统损坏通常发生在源计算机上。

对实例状态检查失败进行故障排除时,在检查以下内容时请记住 Linux 启动过程:

典型的启动顺序是: 开机 - 开机自检(POST)- BIOS/UEFI - 主启动记录/EFI - 启动加载程序 - 内核(和 initramfs)

某些操作系统的启动顺序可能有所不同。

启动配置不正确

实例无法访问启动加载程序(GRUB)

如果实例无法访问启动加载程序(GRUB),就会出现以下错误:

No bootable device. Retrying in 60 seconds.

Booting from hard disk 0...

要排除上述错误,请确认以下几个方面:

如果 GRUB 配置文件(grub.cfg)出现问题,您可能会看到类似于以下内容的 GRUB 提示:

grub>

显示启动仍在 GRUB 启动加载程序中的实例控制台屏幕截图表明 grub.cfg 文件存在问题。grub.cfg 通常位于 /boot/grub2/grub.cfg/boot/grub/grub.cfg/boot/grub/grub.conf 中。

内核不兼容

内核或驱动程序存在问题

如果未发现上一节中描述的 GRUB 错误,请对内核和驱动程序进行故障排除。

Xen 平台:

上一代实例类型(m4、c4、r4)在 Xen 平台上运行。在此平台上运行的操作系统需要 xen-blkfrontxen-netfront 驱动程序。未能安装这两个驱动程序会导致实例状态检查失败。在控制台输出中,此故障可能显示为缺少驱动器,如以下示例所示:

[ ***] dracut-initqueue[679]: Warning: dracut-initqueue timeout - starting timeout scripts

当 initramfs 缺少所需的驱动程序时,就会出现上述检查失败的情况。

如果存在与 initramfs 或内核相关的错误,请重建 initramfs。有关详细信息,请参阅升级内核或尝试重启我的 EC2 Linux 实例后收到 “Kernel panic”错误

基于 Nitro 的实例:

基于 Nitro 的实例需要 NVME 驱动程序(用于 EBS 卷)和 ENA 驱动程序(用于网络接口)。这两个驱动程序缺少任何一个都会导致实例状态检查失败。在控制台输出中,此故障可能显示为缺少驱动器,如以下示例所示:

[***   ] A start job is running for dev-disk...e2.device (12min 17s / no limit)

有关解决上述错误的信息,请参阅为什么我的 Linux 实例在我将其类型更改为基于 Nitro 的实例类型后无法启动?

网络配置不正确

源服务器有许多网络配置。用于管理这些配置的应用程序的上游维护程序有关于其配置的详细文档。如果您怀疑存在网络配置问题,请访问该实例并查看配置。为此,请使用为什么我的 EC2 Linux 实例无法启动并进入紧急模式中概述的以下方法之一:

以下是常用的网络配置管理工具:

相关信息

由于操作系统问题,我的 EC2 Linux 实例未通过实例状态检查。如何解决此问题?

系统状态检查

AWS 官方
AWS 官方已更新 1 年前