針對 SysRq 和 NMI 呼叫使用 Azure 序列控制台

適用於:✔️ Linux VM

系統要求 (SysRq)

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

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

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

Azure 序列控制台的螢幕快照。鍵盤圖示會反白顯示,並顯示其功能表。該功能表包含 Send 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 系統管理員指南:

Command 函式
b 將立即重新啟動系統,而不需同步或卸除您的磁碟。
c 將會執行 NULL 指標取值的系統損毀。 如果已設定,將會採取當機傾印。
d 顯示保留的所有鎖定。
e 將 SIGTERM 傳送至所有進程,但 init 除外。
f 會叫陰殺手殺死記憶豬進程,但如果什麼也沒能殺死,不要驚慌。
g kgdb 使用 (內核調試程式)
h 會顯示說明 (這裡所列的任何其他索引鍵也會顯示說明,但 h 很容易記住 :-)
i 將 SIGKILL 傳送至所有進程,但 init 除外。
j 強行「剛解凍它」 由 FIFREEZE ioctl 凍結的文件系統。
k 安全存取金鑰 (SAK) 會終止目前虛擬控制臺上的所有程式。 注意:請參閱 SAK 一節中的重要批注。
l 顯示所有使用中 CPU 的堆疊回溯。
m 將目前的記憶體資訊傾印到您的控制台。
n 用來讓 RT 工作變得良好
o 將會關閉您的系統(如果已設定和支援)。
p 將目前的快取器和旗標傾印到您的控制台。
q 將傾印所有武裝 hrtimers 的 CPU 清單(但不是一般timer_list定時器),以及所有時鐘裝置的詳細資訊。
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例如,將它設為只讓 PANIC 或 OOPSes 等緊急訊息可以傳送到您的控制台。

散發特定檔

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

Ubuntu

Red Hat

SUSE

CoreOS

無法遮罩的插斷 (NMI)

不可遮罩的中斷 (NMI) 是設計來建立一個訊號,指出虛擬機上的軟體不會忽略。 在過去,NMIS 已用來監視需要特定回應時間之系統上的硬體問題。 現今,程式設計人員和系統管理員通常會使用 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 核心組態的詳細資訊,包括 unknown_nmi_panicpanic_on_io_nmipanic_on_unrecovered_nmi,請參閱: /proc/sys/kernel/*的檔。 如需 NMI 的特定散發檔,以及設定 Linux 在收到 NMI 時建立損毀傾印的步驟,請參閱下列連結:

Ubuntu

Red Hat

SUSE

CoreOS

下一步

與我們連絡,以取得說明

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