先决条件 - Amazon Elastic Compute Cloud

先决条件

AWS 区域

在除加拿大西部(卡尔加里)以外的所有 AWS 区域 中受到支持。

Wavelength 区域和 AWS Outposts

不支持。

Local Zones

在所有 Local Zones 中支持。

实例类型

支持的实例类型:

  • 基于 Nitro 系统构建的所有虚拟化实例。

  • 所有裸机实例,以下项除外:

    • 通用:a1.metalmac1.metalmac2.metal

    • 加速计算:g5g.metal

    • 内存优化型:u-6tb1.metalu-9tb1.metalu-12tb1.metalu-18tb1.metalu-24tb1.metal

授予访问权限

您必须完成配置任务才能授予对 EC2 Serial Console 的访问权限。有关更多信息,请参阅 配置对 EC2 Serial Console 的访问

支持基于浏览器的客户端

如需使用基于浏览器的客户端连接至串行控制台,您的浏览器必须支持 WebSocket。如果您的浏览器不支持 WebSocket,请使用您自己的密钥和 SSH 客户端连接至串行控制台。

实例状态

必须是 running

如果实例处于 pendingstoppingstoppedshutting-downterminated 状态,则无法连接到串行控制台。

有关实例状态的更多信息,请参阅 实例生命周期

Amazon EC2 Systems Manager

如果实例使用 Amazon EC2 Systems Manager,则必须在实例上安装 SSM Agent 3.0.854.0 版或更高版本。有关 SSM Agent 的更多信息,请参阅《AWS Systems Manager 用户指南》中的使用 SSM Agent

sshd 服务器

您不需要在实例上安装或运行 sshd 服务器。

配置您选择的故障排除工具

要通过串行控制台对 Linux 实例进行故障排除,您可以使用 GRUB 或 SysRq。您必须先在要使用这些工具的每个实例上执行配置步骤,然后才可以使用这些工具。

有关在 Windows 上配置您选择的故障排除工具的说明,请参阅《适用于 Windows 实例的 Amazon EC2 用户指南》中的配置您选择的故障排除工具

配置 GRUB

在通过串行控制台使用 GRUB 之前,您必须将实例配置为通过串行控制台使用 GRUB。

要配置 GRUB,请根据用于启动实例的 AMI 选择以下程序之一。

Amazon Linux 2
在 Amazon Linux 2 实例上配置 GRUB
  1. 连接到您的 Linux 实例

  2. /etc/default/grub 中添加或更改以下选项:

    • 设置 GRUB_TIMEOUT=1

    • 添加 GRUB_TERMINAL="console serial"

    • 添加 GRUB_SERIAL_COMMAND="serial --speed=115200"

    以下是 /etc/default/grub 的示例。您可能需要根据系统设置更改配置。

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0" GRUB_TIMEOUT=1 GRUB_DISABLE_RECOVERY="true" GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200"
  3. 运行以下命令以应用更新后的配置。

    [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Ubuntu
在 Ubuntu 实例上配置 GRUB
  1. 连接到您的实例

  2. /etc/default/grub.d/50-cloudimg-settings.cfg 中添加或更改以下选项:

    • 设置 GRUB_TIMEOUT=1

    • 添加 GRUB_TIMEOUT_STYLE=menu

    • 添加 GRUB_TERMINAL="console serial"

    • 删除 GRUB_HIDDEN_TIMEOUT

    • 添加 GRUB_SERIAL_COMMAND="serial --speed=115200"

    以下是 /etc/default/grub.d/50-cloudimg-settings.cfg 的示例。您可能需要根据系统设置更改配置。

    # Cloud Image specific Grub settings for Generic Cloud Images # CLOUD_IMG: This file was created/modified by the Cloud Image build process # Set the recordfail timeout GRUB_RECORDFAIL_TIMEOUT=0 # Do not wait on grub prompt GRUB_TIMEOUT=1 GRUB_TIMEOUT_STYLE=menu # Set the default commandline GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295" # Set the grub console type GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed 115200"
  3. 运行以下命令以应用更新后的配置。

    [ec2-user ~]$ sudo update-grub
RHEL
在 RHEL 实例上配置 GRUB
  1. 连接到您的实例

  2. /etc/default/grub 中添加或更改以下选项:

    • 删除 GRUB_TERMINAL_OUTPUT

    • 添加 GRUB_TERMINAL="console serial"

    • 添加 GRUB_SERIAL_COMMAND="serial --speed=115200"

    以下是 /etc/default/grub 的示例。您可能需要根据系统设置更改配置。

    GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200"
  3. 运行以下命令以应用更新后的配置。

    [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
CentOS

对于使用 CentOS AMI 启动的实例,默认情况下为串行控制台配置了 GRUB。

以下是 /etc/default/grub 的示例。根据您的系统设置,您的配置可能会有所不同。

GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200" GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200" GRUB_DISABLE_RECOVERY="true"

配置 SysRq

要配置 SysRq,请在当前引导周期中启用 SysRq 命令。要使配置永久化,您还可以为后续引导启用 SysRq 命令。

为当前引导周期启用所有 SysRq 命令
  1. 连接到您的实例

  2. 运行以下命令。

    [ec2-user ~]$ sudo sysctl -w kernel.sysrq=1
    注意

    下次重新启动时将会清除此设置。

为后续引导启用所有 SysRq 命令
  1. 创建文件 /etc/sysctl.d/99-sysrq.conf 并在您收藏的编辑器中打开。

    [ec2-user ~]$ sudo vi /etc/sysctl.d/99-sysrq.conf
  2. 添加以下行。

    kernel.sysrq=1
  3. 重启实例以应用更改。

    [ec2-user ~]$ sudo reboot
  4. login 提示符下,输入您之前设置的基于密码的用户的用户名,然后按 Enter 键。

  5. Password 提示符下,输入密码,然后按 Enter 键。