使用 Azure 序列控制台進行 SysRq 和 NMI 呼叫
系統要求 (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 管理員 指南:
命令 | 函數 |
---|---|
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 時啟用緊急狀況:
- 將這一行 新增至 /etc/sysctl.conf
kernel.panic_on_unrecovered_nmi=1
- 執行 重新啟動或更新 sysctl
sysctl -p
如需 Linux 核心組態的詳細資訊,包括 、 和 ,請參閱:/proc/sys/kernel/*的檔。panic_on_unrecovered_nmi
panic_on_io_nmi
unknown_nmi_panic
如需 NMI 的散發特定檔,以及設定 Linux 以在收到 NMI 時建立損毀傾印的步驟,請參閱下列連結:
Ubuntu
Red Hat
Suse
CoreOS
後續步驟
- 主要序列主控台 Linux 檔頁面位於 此處。
- 使用序列主控台開機進入 GRUB 並進入單一使用者模式
- 序列主控台也適用於 Windows VM
- 深入瞭解 開機診斷
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應