針對 SysRq 和 NMI 呼叫使用 Azure 序列控制台
適用於:✔️ Linux VM
系統要求 (SysRq)
SysRq 是 Linux 作業系統核心所瞭解的一系列密鑰,可觸發一組預先定義的動作。 當虛擬機疑難解答或復原無法透過傳統系統管理執行時,通常會使用這些命令(例如,如果 VM 沒有回應)。 使用 Azure 序列控制台的 SysRq 功能,將會模擬在實體鍵盤上輸入的 SysRq 鍵和字元。
傳遞 SysRq 序列之後,核心組態將會控制系統回應的方式。 如需啟用和停用 SysRq 的資訊,請參閱 SysRq 系統管理員指南文字 | Markdown。
您可以使用下列命令列中的鍵盤圖示,使用 Azure 序列主控台將 SysRq 傳送至 Azure 虛擬機。
選擇 [傳送 SysRq 命令] 會開啟對話方塊,這會提供一般 SysRq 選項,或接受一連串輸入至對話框的 SysRq 命令。 這可讓一系列的 SysRq 執行高階作業,例如使用: REISUB
安全重新啟動。
SysRq 命令無法在停止或核心處於非回應狀態的虛擬機上使用。 (例如核心恐慌)。
啟用 SysRq
如上述 SysRq 系統管理指南所述,您可以設定 SysRq,讓所有、無或只有特定命令可供使用。 您可以使用下列步驟來啟用所有 SysRq 命令,但無法重新啟動:
echo "1" >/proc/sys/kernel/sysrq
若要讓 SysReq 設定持續執行,您可以執行下列動作來啟用所有 SysRq 命令
- 將此行新增至 /etc/sysctl.conf
kernel.sysrq = 1
- 執行重新啟動或更新 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 時的恐慌:
- 將此行新增至 /etc/sysctl.conf
kernel.panic_on_unrecovered_nmi=1
- 執行重新啟動或更新 sysctl
sysctl -p
如需 Linux 核心組態的詳細資訊,包括 unknown_nmi_panic
、 panic_on_io_nmi
和 panic_on_unrecovered_nmi
,請參閱: /proc/sys/kernel/*的檔。 如需 NMI 的特定散發檔,以及設定 Linux 在收到 NMI 時建立損毀傾印的步驟,請參閱下列連結:
Ubuntu
Red Hat
SUSE
CoreOS
下一步
- 主要序列主控台 Linux 檔頁面位於 這裡。
- 使用序列主控台開機進入 GRUB 並進入單一使用者模式
- 序列主控台也適用於 Windows VM
- 深入瞭解 開機診斷
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。