共用方式為


使用 Azure 序列控制台進行 SysRq 和 NMI 呼叫

系統要求 (SysRq)

SysRq 是 Linux 作業系統核心所瞭解的一系列密鑰,可觸發一組預先定義的動作。 這些命令通常會在虛擬機疑難解答或復原無法透過傳統的系統管理 (執行時使用,例如,如果 VM 沒有回應) 。 使用 Azure 序列控制台的 SysRq 功能,會模擬按下在實體鍵盤上輸入的 SysRq 鍵和字元。

傳遞 SysRq 序列之後,核心組態會控制系統回應方式。 如需啟用和停用 SysRq 的資訊,請參閱 SysRq 管理員 指南文字 | Markdown

Azure 序列控制台可用來使用下列命令行中的鍵盤圖示,將 SysRq 傳送至 Azure 虛擬機。

Azure 序列控制台的螢幕快照。鍵盤圖示會反白顯示,並顯示其功能表。該功能表包含 [傳送 SysRq 命令] 專案。

選擇 [傳送 SysRq 命令] 將會開啟對話方塊,以提供常見的 SysRq 選項,或接受一連串輸入對話框的 SysRq 命令。 這可讓一系列的 SysRq 執行高階作業,例如使用下列專案安全地重新啟動: REISUB

選取 [輸入金鑰] 選項且 REISUB 輸入下列欄位時,[將 SysRq 命令傳送至來賓] 對話框的螢幕快照。

SysRq 命令無法用於已停止或核心處於無響應狀態的虛擬機上。 例如, (核心緊急) 。

啟用 SysRq

如上述 SysRq 管理員 指南中所述,您可以設定 SysRq,讓所有、無或只有特定命令可供使用。 您可以使用下列步驟來啟用所有 SysRq 命令,但無法在重新啟動後繼續執行:

echo "1" >/proc/sys/kernel/sysrq

若要讓 SysReq 組態持續性,您可以執行下列動作來啟用所有 SysRq 命令

  1. 將這一行 新增至 /etc/sysctl.conf
    kernel.sysrq = 1
  2. 執行 重新啟動或更新 sysctl
    sysctl -p

命令金鑰

從上述的 SysRq 管理員 指南:

命令 函數
b 會立即重新啟動系統,而不會同步或卸除您的磁碟。
c 將會執行 NULL 指標取值的系統損毀。 如果已設定損毀傾印,則會進行損毀傾印。
d 顯示所有保留的鎖定。
e 將 SIGTERM 傳送至所有進程,但 init 除外。
f 會呼叫 oom 號塊來終止記憶體 Hog 進程,但如果無法終止任何專案,請勿異常。
g 由kgdb (核心調試程式) 使用
h 將顯示說明 (此處所列的索引鍵以外的任何索引鍵也會顯示說明,但 h 很容易記住 :-)
i 將 SIGKILL 傳送至所有進程,但 init 除外。
j 強制「只是解除凍結」- FIFREEZE ioctl 凍結的文件系統。
k 安全存取金鑰 (SAK) 終止目前虛擬控制臺上的所有程式。 注意:請參閱下方 SAK 區段中的重要批注。
l 顯示所有作用中 CPU 的堆疊回溯。
m 會將目前的記憶體信息傾印到您的控制台。
n 用來讓 RT 工作變得更容易
o 如果已設定並支援) ,將會關閉系統 (。
p 會將目前的緩存器和旗標傾印到您的控制台。
q 會針對所有已 (但非一般timer_list定時器的所有 CPU 清單傾印,) 所有 clockevent 裝置的詳細資訊。
r 關閉鍵盤原始模式,並將它設定為 XLATE。
s 會嘗試同步處理所有掛接的文件系統。
t 會將目前工作及其信息的清單傾印到您的控制台。
u 會嘗試重新掛接所有掛接的文件系統唯讀。
v 強制還原 framebuffer 控制台
v 造成 ETM 緩衝區傾印 [ARM 特定]
w 傾印處於不間斷 (封鎖) 狀態的工作。
x 由 ppc/powerpc 平臺上的 xmon 介面使用。 在sparc64上顯示全域 PMU 快取器。 傾印 MIPS 上的所有 TLB 專案。
y 顯示全域 CPU 快取器 [SPARC-64 特定]
z 傾印 ftrace 緩衝區
0-9 設定主控台記錄層級,控制哪些核心訊息會列印到您的控制台。 0例如, (,只讓 PANNIC 或 OOPSes 等緊急訊息進入您的控制台。)

散發特定檔

如需有關 SysRq 的散發特定檔,以及設定 Linux 在收到 SysRq “Crash” 命令時建立損毀傾印的步驟,請參閱下列連結:

Ubuntu

Red Hat

Suse

CoreOS

不可遮罩的中斷 (NMI)

NMI) (無法遮罩的中斷是設計來建立一個訊號,指出虛擬機上的軟體不會忽略。 在過去,NPI 一直用來監視需要特定回應時間之系統上的硬體問題。 現今,程式設計人員和系統管理員通常會使用 NMI 作為機制,對沒有回應的系統進行偵錯或疑難解答。

序列主控台可用來使用命令列中的鍵盤圖示,將 NMI 傳送至 Azure 虛擬機,如下所示。 傳遞 NMI 之後,虛擬機組態會控制系統回應方式。 Linux 作業系統可以設定為當機,並建立記憶體轉儲,讓操作系統接收 NMI。

序列主控台的螢幕快照。鍵盤圖示會反白顯示,並顯示其功能表。該功能表包含 [傳送不可遮罩的中斷] 專案。

啟用 NMI

針對支援 sysctl 來設定核心參數的 Linux 系統,您可以使用下列方法在接收此 NMI 時啟用緊急狀況:

  1. 將這一行 新增至 /etc/sysctl.conf
    kernel.panic_on_unrecovered_nmi=1
  2. 執行 重新啟動或更新 sysctl
    sysctl -p

如需 Linux 核心組態的詳細資訊,包括 、 和 ,請參閱:/proc/sys/kernel/*的檔panic_on_unrecovered_nmipanic_on_io_nmiunknown_nmi_panic 如需 NMI 的散發特定檔,以及設定 Linux 以在收到 NMI 時建立損毀傾印的步驟,請參閱下列連結:

Ubuntu

Red Hat

Suse

CoreOS

後續步驟

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群