使用 EC2 序列主控台進行 Amazon EC2 執行個體疑難排解 - Amazon Elastic Compute Cloud

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

使用 EC2 序列主控台進行 Amazon EC2 執行個體疑難排解

透過使用 EC2 序列主控台,您可以連接到執行個體的序列埠來疑難排解開機、網路設定和其他問題。

針對執行個體的作業系統和您在執行個體上設定的工具,使用相關指示。

先決條件

開始之前,請確定您已完成先決條件,包括設定您選擇的故障診斷工具。

(Linux 執行個體) 使用 GRUB 對執行個體進行疑難排解

GNU GRUB (GNU Grand 統一開機載入程式的簡稱,通常稱為 GRUB) 是大多數 Linux 作業系統的預設開機載入程式。從 GRUB 功能表中,您可以選擇要開機的核心,或修改功能表項目以變更核心的開機方式。這在疑難排解失敗的執行個體時非常有用。

GRUB 功能表會在開機過程中顯示。該功能表無法透過一般 SSH 存取,但您可以透過 EC2 序列主控台存取。

您可以開機至單一使用者模式或緊急模式。單一使用者模式會以較低的執行層級啟動核心。例如,它可能掛載檔案系統,但不會啟動網路,讓您有機會執行修復執行個體所需的維護。緊急模式與單一使用者模式類似,不同之處在於核心以最低的執行層級執行。

開機至單一使用者模式
  1. 連線到執行個體的序列主控台。

  2. 使用下列命令重新啟動執行個體。

    [ec2-user ~]$ sudo reboot
  3. 在重新開機期間,當 GRUB 功能表出現時,按任意鍵停止啟動過程。

  4. 在 GRUB 功能表中,使用方向鍵選取要開機的核心,然後按鍵盤上的 e

  5. 使用方向鍵將游標定位在包含核心的行上。該行以 linuxlinux16 開頭,取決於用於啟動執行個體的 AMI。對於 Ubuntu,兩行以 linux 開頭,必須在下一個步驟中修改這兩行。

  6. 在該行的末尾,添加單詞 single

    以下是 Amazon Linux 2 的範例。

    linux /boot/vmlinuz-4.14.193-149.317.amzn2.aarch64 root=UUID=d33f9c9a-\ dadd-4499-938d-ebbf42c3e499 ro console=tty0 console=ttyS0,115200n8 net.ifname\ s=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.she\ ll=0 single
  7. Ctrl+X 以開機進入單一使用者模式。

  8. 出現 login 提示時,輸入您先前設定之密碼型使用者的使用者名稱,然後按 Enter

  9. 出現 Password 提示時,輸入密碼,然後按 Enter

 

開機進入緊急模式

遵循與單一使用者模式相同的步驟,但在步驟 6 中新增字詞 emergency,而非 single

(Linux 執行個體) 使用 SysRq 對執行個體進行疑難排解

系統要求 (SysRq) 金鑰,有時稱為「神奇 SysRq」,可以用來在 shell 之外直接向核心傳送命令,無論核心正在執行什麼操作,都會回應。例如,如果執行個體已停止回應,您可以使用 SysRq 金鑰告訴核心當機或重新開機。如需詳細資訊,請參閱 Wikipedia 中的神奇 SysRq 金鑰

您可以在以 EC2 序列主控台瀏覽器為基礎的用戶端或 SSH 用戶端中使用 SysRq 命令。每個用戶端傳送中斷請求的命令是不同的。

若要使用 SysRq,請根據您所使用的用戶端選擇下列其中一個程序。

Browser-based client
在序列主控台瀏覽器型用戶端中使用 SysRq
  1. 連線到執行個體的序列主控台。

  2. 若要傳送中斷請求,請按 CTRL+0 (零)。如果您的鍵盤支援,您也可以使用「暫停」或「Break」鍵來傳送中斷請求。

    [ec2-user ~]$ CTRL+0
  3. 若要發出 SysRq 命令,請按鍵盤上對應至所需命令的按鍵。例如,若要顯示 SysRq 命令清單,請按 h

    [ec2-user ~]$ h

    h 命令會輸出類似下列內容。

    [ 1169.389495] sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems (j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r ) sync(s) show-task-states(t) unmount(u) show-blocked-tasks(w) dump-ftrace-buffer(z)
SSH client
在 SSH 用戶端中使用 SysRq
  1. 連線到執行個體的序列主控台。

  2. 若要傳送中斷請求,請按下 ~B (波狀符號,後面接著大寫 B)。

    [ec2-user ~]$ ~B
  3. 若要發出 SysRq 命令,請按鍵盤上對應至所需命令的按鍵。例如,若要顯示 SysRq 命令清單,請按 h

    [ec2-user ~]$ h

    h 命令會輸出類似下列內容。

    [ 1169.389495] sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems (j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r ) sync(s) show-task-states(t) unmount(u) show-blocked-tasks(w) dump-ftrace-buffer(z)
    注意

    根據您使用的 SSH 用戶端,您用於傳送中斷請求的命令可能會有所不同。

(Windows 執行個體) 使用 SAC 為您的執行個體進行疑難排解

Windows 的特殊管理主控台 (SAC) 功能提供了一種疑難排解 Windows 執行個體的方法。透過連線到執行個體的序列主控台並使用 SAC,您可以中斷開機程序並以安全模式啟動 Windows。

注意

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

使用 SAC

使用 SAC
  1. 連接至序列主控台。

    如果執行個體上已啟用 SAC,序列主控台會顯示 SAC> 提示。

    序列主控台中顯示的 SAC 提示。
  2. 若要顯示 SAC 命令,請輸入「?」,然後按 Enter

    預期的輸出結果

    輸入問號以顯示 SAC 命令。
  3. 若要建立命令提示通道 (例如 cmd0001cmd0002),請輸入「cmd」,然後按 Enter

  4. 若要檢視命令提示通道,請按 ESC,然後按 TAB

    預期的輸出結果

    命令提示通道。
  5. 若要切換通道,請同時按 ESC+TAB+通道號碼。例如,若要切換至 cmd0002 頻道 (如果已建立),請按 ESC+TAB+2

  6. 輸入命令提示通道所需的憑證。

    命令提示字元需要憑證。

    命令提示字元與您在桌面上取得的完整功能命令 Shell 相同,但是除了它,不允許讀取已經輸出的字元。

    功能齊全的命令 Shell。

也可以從命令提示字元使用 PowerShell。

請注意,您可能需要將進度偏好設定設定為無訊息模式。

命令提示字元中的 PowerShell。

使用開機功能表

如果執行個體啟用了開機功能表,且透過 SSH 連線後重新啟動,您應該會看到開機功能表,如下所示。

命令提示字元中的開機功能表。

開機功能表命令

ENTER

啟動選取的作業系統項目。

TAB

切換至「工具」功能表。

ESC

取消並重新啟動執行個體。

ESC 後跟 8

相當於按下 F8 。顯示所選項目的進階選項。

ESC 鍵 + 向左箭頭

回到初始開始功能表。

注意

單獨的 ESC 鍵不會帶您回到主功能表,因為 Windows 正在等待查看是否正在進行逸出序列。

進階開機選項。

停用 SAC 和開機選單

如果您啟用 SAC 和開機選單,可以稍後停用這些功能。

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

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

  2. 首先透過將值變更為 no 來停用開機選單。

    bcdedit /set '{bootmgr}' displaybootmenu no
  3. 然後透過將值變更為 off 來停用 SAC。

    bcdedit /ems '{current}' off
  4. 透過重新啟動執行個體來套用更新的組態。

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

  2. 首先透過將值變更為 no 來停用開機選單。

    bcdedit /set {bootmgr} displaybootmenu no
  3. 然後透過將值變更為 off 來停用 SAC。

    bcdedit /ems {current} off
  4. 透過重新啟動執行個體來套用更新的組態。

    shutdown -r -t 0