启动与虚拟机故障

无法访问 Azure 串行控制台且磁盘布局使用 LVM 时,对 Azure Linux VM 进行故障排除 - Virtual Machines

· 52CE 我爱测

适用于:✔️ Linux VM 总结 本文提供了Azure Linux 虚拟机(VM)的故障排除指南,其中提供了以下所有条件: - VM 未启动。 - 无法使用 SSH 连接到 VM。 - Azure串行控制台访问不可用。 - VM 在操作系统(OS)磁盘中使用逻辑卷管理器(LVM)。 先决条件 - 若要使用 Azure VM 修复命令(repair-linux-vm-using-azure-virtual-machine-repair-commands)

适用于:✔️ Linux VM

总结

本文提供了Azure Linux 虚拟机(VM)的故障排除指南,其中提供了以下所有条件:

  • VM 未启动。
  • 无法使用 SSH 连接到 VM。
  • Azure串行控制台访问不可用。
  • VM 在操作系统(OS)磁盘中使用逻辑卷管理器(LVM)。

先决条件

  • 若要使用 Azure VM 修复命令,需要以下访问权限:

  • 若要执行恢复操作,需要临时 VM。 若要创建此类 VM,需要在Azure订阅级别具有相应的权限。

准备救援虚拟机

  1. 使用 VM 修复命令 创建具有附加受影响 VM OS 磁盘副本的救援 VM。

    注意

    或者,可以使用 Azure 门户手动创建救援 VM。 有关详细信息,请参阅使用 Azure 门户通过将 OS 磁盘附加到恢复 VM 来故障排除 Linux 虚拟机。

    • 如果手动创建救援 VM 而不是使用 VM 修复命令,若要避免由于 LVM 结构重复而导致的问题,则必须在 OS 磁盘中选择没有 LVM 的映像。 如果使用基于 Red Hat 的 VM,则需要使用“Red Hat RAW”搜索映像。Ubuntu 和 SUSE 映像不使用 OS 磁盘中的 LVM。
    • 如果 Red Hat RAW 映像中缺少 LVM 实用工具, 请安装 LVM 实用工具。
  2. 使用 chroot 连接到救援 VM 并在救援 VM 中装载 OS 文件系统的副本。

    在 chroot 环境中执行命令时,会针对附加的 OS 磁盘而不是本地救援 VM 执行这些命令。

  3. 故障排除完成后,执行以下操作:

    1. 退出 chroot。
    2. 从救援 VM 卸载文件系统的副本。
    3. az vm repair restore运行以下命令,将修复的 OS 磁盘与 VM 的原始 OS 磁盘交换。 有关详细信息,请参阅 使用 Azure 虚拟机修复命令对 Linux VM 进行恢复的步骤 5。
    4. 通过查看 Azure 串行控制台或尝试连接到 VM 来验证 VM 是否能够启动。

启用串行控制台

如果无法访问串行控制台,请验证 Linux VM 的 GRUB 配置参数并更正它们。 有关详细信息,请参阅 串行控制台 GRUB 主动配置。

常见故障排除方案

方案 1:将 VM 配置为从其他内核启动

常见方案是强制 VM 从以前的内核启动,因为当前安装的内核可能已损坏或升级未正确完成。

为此,请遵循旧版内核版本的启动系统中的步骤。 还可以检查 最近内核降级。

方案 2:内核更新问题

内核升级失败可能会导致 VM 不可启动。 有关执行内核更新的操作的详细信息,请参阅 内核更新过程。

方案 3:GRUB 中的 LVM 交换分区配置错误

在此场景中,由于 GRUB 配置中的交换设备路径无效,VM 无法完成启动过程并进入 dracut 紧急模式。

若要解决问题,请在 GRUB 配置文件中的错误交换设备路径中执行步骤。

资料来源与适用范围

资料来源
微软官方 Linux 虚拟机排障文档
适用范围
Azure Linux 虚拟机;按正文发行版、内核及代理版本
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。