EC2 序列主控台的先決條件 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

EC2 序列主控台的先決條件

AWS 區域

除了亞太區域 (馬來西亞) 區域 AWS 區域 之外,所有 都支援 。

Wavelength 區和 AWS Outposts

不支援。

本機區域

所有本地區域皆支援。

執行個體類型

支援的執行個體類型:

  • Linux

    • 在 Nitro 系統上建置的所有虛擬化執行個體。

    • 所有裸機執行個體,除了:

      • 一般用途:a1.metalmac1.metalmac2.metal

      • 加速運算:g5g.metal

      • 記憶體最佳化:u-6tb1.metalu-9tb1.metalu-12tb1.metalu-18tb1.metalu-24tb1.metal

  • Windows

    在 Nitro 系統上建置的所有虛擬化執行個體。在裸機執行個體上不受支援。

授與存取權

您必須完成設定工作,才能向 EC2 序列主控台授與存取權。如需詳細資訊,請參閱設定對 EC2 序列主控台的存取

支援瀏覽器型用戶端

若要使用以瀏覽器為基礎的用戶端連線到序列主控台,您的瀏覽器必須支援 WebSocket。如果您的瀏覽器不支援 WebSocket,請使用您自己的金鑰和 SSH 用戶端連線到序列主控台。

執行個體狀態

必須為 running

若執行個體處於 pendingstoppingstoppedshutting-down,或 terminated 狀態,將無法連線到序列主控台。

如需執行個體狀態的詳細資訊,請參閱 Amazon EC2 執行個體狀態變更

Amazon EC2 Systems Manager

如果執行個體使用 Amazon EC2 Systems Manager,則必須在執行個體上安裝 SSM Agent 3.0.854.0 版或更新版本。如需有關 SSM Agent 的資訊,請參閱 AWS Systems Manager 使用者指南中的使用 SSM Agent

設定所選的疑難排解工具

若要透過序列主控台對執行個體進行疑難排解,您可以使用 Linux 執行個體上的GRUB 或 SysRq,以及 Windows 執行個體上的特殊管理主控台 (SAC)。在使用這些工具之前,您必須先對要使用工具所在的每個執行個體執行設定步驟。

使用執行個體作業系統的指示來設定您所選之疑難排解工具。

若要設定 GRUB,請根據用來啟動執行個體的 AMI 選擇下列其中一個程序。

Amazon Linux 2
在 Amazon Linux 2 執行個體上設定 GRUB
  1. 使用 SSH 連線至您的 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 --update-bls-cmdline

    針對 RHEL 9.2 和較早版本,請使用下列命令。

    [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 命令
  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

注意

如果您在執行個體上啟用 SAC,則依賴密碼擷取的 EC2 服務將無法從 Amazon EC2 主控台運作。Amazon EC2 上的 Windows 啟動代理程式 (EC2Config、EC2Launch v1 和 EC2Launch v2) 倚賴序列主控台執行各種任務。在執行個體上啟用 SAC 時,這些任務不會成功執行。如需 Amazon EC2 啟動代理程式的詳細資訊,請參閱 設定您的 Amazon EC2 Windows 執行個體。如果您啟用 SAC,可以稍後停用它。如需詳細資訊,請參閱停用 SAC 和開機選單

使用下列其中一種方法來啟用執行個體上的 SAC 和開機功能表。

PowerShell
在 Windows 執行個體上啟用 SAC 和開機功能表
  1. 連線到您的執行個體,並從提高權限的 PowerShell 命令列執行下列步驟。

  2. 啟用 SAC。

    bcdedit /ems '{current}' on bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  3. 啟用開機功能表。

    bcdedit /set '{bootmgr}' displaybootmenu yes bcdedit /set '{bootmgr}' timeout 15 bcdedit /set '{bootmgr}' bootems yes
  4. 透過重新啟動執行個體來套用更新的組態。

    shutdown -r -t 0
Command prompt
在 Windows 執行個體上啟用 SAC 和開機功能表
  1. 連接到您的執行個體,並從命令提示字元執行下列步驟。

  2. 啟用 SAC。

    bcdedit /ems {current} on bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  3. 啟用開機功能表。

    bcdedit /set {bootmgr} displaybootmenu yes bcdedit /set {bootmgr} timeout 15 bcdedit /set {bootmgr} bootems yes
  4. 透過重新啟動執行個體來套用更新的組態。

    shutdown -r -t 0