跳至内容

如何使用 EC2Rescue for Linux 来解决操作系统级别的问题?

2 分钟阅读
0

我无法连接到我的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例,或者我遇到启动问题。我想使用 EC2Rescue 来诊断和解决操作系统 (OS) 问题。

简短描述

您可以使用 EC2Rescue for Linux 执行以下操作:

  • 收集系统使用情况报告,例如 vmstat、iostat 和 mpstat。
  • 收集日志和详细信息,例如 syslog、dmesg、应用程序错误日志和 AWS Systems Manager 日志。
  • 检测系统问题,例如非对称路由或重复的根设备标签。
  • 自动修复系统问题,例如 OpenSSH 文件权限或内核参数激活问题。

**注意:**如果您可以访问 EC2 Serial Console,请使用该控制台对受支持的基于 Nitro 的实例类型进行故障排除。有关详细信息,请参阅连接到 EC2 Serial Console。您还可以使用 AWSSupport-ExecuteEC2Rescue 运行手册来自动识别和修复导致连接问题的问题。有关详细信息,请参阅在无法访问的实例上运行 EC2Rescue 工具

解决方法

**先决条件:**确保您的系统符合 EC2Rescue 的操作系统和软件要求

使用 EC2Rescue 对连接问题进行故障排除

完成以下步骤:

  1. 使用有问题实例的亚马逊机器映像 (AMI) 在您的虚拟私有云 (VPC) 中启动救援实例
    **注意:**确保新实例与有问题的实例位于同一可用区内。您也可以使用与有问题的实例位于同一可用区的现有实例。

  2. 将 Amazon Elastic Block Storage (Amazon EBS) 根卷与有问题的实例分离。记下设备名称,例如 /dev/xvda/dev/sda1

  3. 将 Amazon EBS 卷作为辅助设备(例如 /dev/sdf)附加到救援实例
    **注意:**如果您实例的根设备是由 Amazon EBS 支持的卷,请停止并重启该实例

  4. 使用 SSH 连接到您的救援实例

  5. 以根用户身份运行以下命令,以识别正确的设备名称:

    $ sudo -i
    # lsblk
    # rescuedev=/dev/xvdf1

    **注意:**运行 lsblk 时,请记下输出中的设备名称。请将 xvsf1 替换为附加到您的救援实例的设备的设备名称

  6. 要选择尚未使用的现有临时挂载点,请运行以下命令:

    # rescuemnt=/mnt
    # mkdir -p $rescuemnt

    **注意:**最佳做法是使用 /mnt 作为挂载点。

  7. 要从附加的卷挂载根文件系统,请运行以下命令:

    # mount $rescuedev $rescuemnt

    如果卷挂载失败,请运行以下命令:

    dmesg | tail

    如果日志显示通用唯一标识符 (UUID) 存在冲突,请使用 -o nouuid 选项重新运行上述命令。示例:

    mount -o nouuid $rescuedev $rescuemnt
  8. 要挂载特殊文件系统并将根目录更改为新的文件系统,请运行以下命令:

    # for i in proc sys dev run; do mount --bind /$i $rescuemnt/$i ; done
    # chroot $rescuemnt
  9. 在离线 Linux 根卷上下载并安装适用于 Linux 的 EC2Rescue 工具

  10. 运行不含选项的 EC2Rescue for Linux,以运行所有模块。

  11. 根据结果,运行以下命令为受支持的模块激活修复:

# ./ec2rl run --remediate
  1. 要退出 chroot 并卸载辅助设备,请运行以下命令:
# exit
# umount $rescuemnt/{proc,sys,dev,run,}

**注意:**如果卸载操作失败,请先停止重启救援实例,然后再卸载辅助设备。 将辅助卷与 EC2 救援实例分离将 /dev/sdf 辅助卷作为 /dev/xvda/dev/sda1 根卷附加到原始实例启动实例,然后验证该实例是否按预期运行。

使用其他故障排除方法

要进一步对操作系统级问题进行故障排除,请执行以下操作:

相关信息

Recover your impaired instances using EC2Rescue and Amazon EC2 Systems Manager Automation(使用 EC2Rescue 和 Amazon EC2 Systems Manager Automation 恢复受损实例)

排查 Amazon EC2 Windows 实例问题