当无法访问 Azure 串行控制台且磁盘布局使用逻辑卷管理器时,排查 Azure Linux VM 问题
适用于:✔️ Linux VM
本文提供了 Azure Linux 虚拟机(VM)的故障排除指南,其中提供了以下所有条件:
- VM 未启动。
- 无法使用 SSH 连接到 VM。
- Azure 串行控制台访问不可用。
- VM 在操作系统(OS)磁盘中使用逻辑卷管理器(LVM)。
先决条件
若要使用 Azure VM 修复命令,需要以下访问权限:
- 访问 Azure Cloud Shell
- 访问新的或现有的自定义存储帐户
若要执行恢复操作,需要临时 VM。 若要创建此类 VM,需要在 Azure 订阅级别具有相应的权限。
准备救援 VM
使用 VM 修复命令 创建具有附加受影响 VM OS 磁盘副本的救援 VM。
注意
或者,可以使用 Azure 门户手动创建救援 VM。 有关详细信息,请参阅通过使用 Azure 门户将 OS 磁盘附加到恢复 VM 来对 Linux VM 进行故障排除。
如果手动创建救援 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 配置文件中的错误交换设备路径中执行步骤。
后续步骤
有关进一步没有启动故障排除选项,请参阅排查 Azure Linux 虚拟机启动错误。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。