适用于:✔️ Linux VM
总结
本文提供了Azure Linux 虚拟机(VM)的故障排除指南,其中提供了以下所有条件:
- VM 未启动。
- 无法使用 SSH 连接到 VM。
- Azure串行控制台访问不可用。
- VM 在操作系统(OS)磁盘中使用逻辑卷管理器(LVM)。
先决条件
-
若要使用 Azure VM 修复命令,需要以下访问权限:
- 访问 Azure Cloud Shell
- 访问新的或现有的自定义存储帐户
-
若要执行恢复操作,需要临时 VM。 若要创建此类 VM,需要在Azure订阅级别具有相应的权限。
准备救援虚拟机
-
使用 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 实用工具。
-
使用 chroot 连接到救援 VM 并在救援 VM 中装载 OS 文件系统的副本。
在 chroot 环境中执行命令时,会针对附加的 OS 磁盘而不是本地救援 VM 执行这些命令。
-
故障排除完成后,执行以下操作:
- 退出 chroot。
- 从救援 VM 卸载文件系统的副本。
az vm repair restore运行以下命令,将修复的 OS 磁盘与 VM 的原始 OS 磁盘交换。 有关详细信息,请参阅 使用 Azure 虚拟机修复命令对 Linux VM 进行恢复的步骤 5。- 通过查看 Azure 串行控制台或尝试连接到 VM 来验证 VM 是否能够启动。
启用串行控制台
如果无法访问串行控制台,请验证 Linux VM 的 GRUB 配置参数并更正它们。 有关详细信息,请参阅 串行控制台 GRUB 主动配置。
常见故障排除方案
方案 1:将 VM 配置为从其他内核启动
常见方案是强制 VM 从以前的内核启动,因为当前安装的内核可能已损坏或升级未正确完成。
为此,请遵循旧版内核版本的启动系统中的步骤。 还可以检查 最近内核降级。
方案 2:内核更新问题
内核升级失败可能会导致 VM 不可启动。 有关执行内核更新的操作的详细信息,请参阅 内核更新过程。
方案 3:GRUB 中的 LVM 交换分区配置错误
在此场景中,由于 GRUB 配置中的交换设备路径无效,VM 无法完成启动过程并进入 dracut 紧急模式。
若要解决问题,请在 GRUB 配置文件中的错误交换设备路径中执行步骤。