適用対象: ✔️ Linux Virtual Machines(VM)
システム要求 (SysRq)
SysRq は Linux オペレーション システム カーネルによって解釈されるキーのシーケンスであり、事前定義済みの一連のアクションをトリガーできます。 これらのコマンドは、仮想マシンのトラブルシューティングまたは復旧を従来の管理で実行できない場合によく使用されます。 たとえば、VM が応答していない場合です。 Azure シリアル コンソールの SysRq 機能を使用すると、SysRq キーを押すと、物理キーボードに入力された文字が模倣されます。
SysRq シーケンスが配信されると、カーネル構成によってシステムの応答方法が制御されます。 SysRq の有効化および無効化に関する情報については、「SysRq Admin Guide」(SysRq 管理ガイド) の「テキスト | マークダウン」を参照してください。
Azure シリアル コンソールを使用すると、次のコマンド バーのキーボード アイコンを使用して、SysRq を Azure 仮想マシンに送信できます。
[SysRq コマンドの送信] を選択するとダイアログが開き、一般的な 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 |
init を除いて、SIGTERM をすべてのプロセスに送信します。 |
f |
oomキラーを呼び出してメモリを大量に消費しているプロセスを終了させますが、何も終了できなくても慌てないでください。 |
g |
kgdb によって使用されます (カーネル デバッガー)。 |
h |
ヘルプが表示されます (ここに記載されているキー以外のキーにもヘルプが表示されますが、 h は覚えやすいです:-) |
i |
init を除いて、SIGKILL をすべてのプロセスに送信します。 |
j |
強制的に、FIFREEZE ioctl によって凍結されるファイルシステムを "ただ解凍します"。 |
k |
Secure Access Key (SAK) によって、現在の仮想コンソール上のすべてのプログラムを強制終了します。 注: 次の SAK セクションの重要なコメントを参照してください。 |
l |
すべてのアクティブな CPU に対するスタック バックトレースを表示します。 |
m |
コンソールに現在のメモリ情報をダンプします。 |
n |
RT タスクを最適化するために使用されます。 |
o |
システムを閉じます (構成され、サポートされている場合)。 |
p |
現在のレジスタとフラグをコンソールにダンプします。 |
q |
装備されたすべての hr タイマー (ただし、通常の timer_list のタイマーは対象外) およびすべてのクロックイベント デバイスに関する詳細情報を CPU 一覧ごとにダンプします。 |
r |
キーボードの raw モードをオフにし、XLATE に設定します。 |
s |
マウントされたすべてのファイルシステムの同期を試行します。 |
t |
お使いのコンソールに対する現在のタスクとその情報の一覧をダンプします。 |
u |
マウントされたすべてのファイルシステムの再マウントを読み取り専用で試行します。 |
v |
framebuffer コンソールを強制的に復元します。 |
v |
ETM バッファーのダンプを行います [ARM 固有]。 |
w |
非割り込み (ブロックされた) 状態でタスクをダンプします。 |
x |
ppc/powerpc プラットフォーム上で、xmon インターフェイスによって使用されます。 sparc64 上でグローバル PMU Register を表示します。 MIPS 上のすべての TLB エントリをダンプします。 |
y |
グローバル CPU Register を表示します [SPARC-64 固有] |
z |
ftrace バッファーをダンプします。 |
0-9 |
コンソールログレベルを設定し、コンソールに出力するカーネルメッセージを制御します。 (たとえば 0 では、PANIC や OOPS などの緊急時のメッセージのみがコンソールに示されるように、レベルを設定します)。 |
ディストリビューション固有のドキュメント
SysRq のディストリビューション固有のドキュメントと、SysRq "Crash" コマンドを受け取ったときにクラッシュ ダンプを作成するように Linux を構成する手順については、次のリンクを参照してください。
Ubuntu
Red Hat
SUSE
CoreOS
マスク不可能割り込み (NMI)
マスク不可能な割り込み (NMI) は、仮想マシン上のソフトウェアが無視しないシグナルを生成します。 これまで、NMI は、特定の応答時間を必要とするシステム上のハードウェアの問題を監視するために使用されます。 現在、プログラマやシステム管理者は、応答していないシステムをデバッグまたはトラブルシューティングするためのメカニズムとして NMI を使用することがよくあります。
シリアル コンソールを使用すると、次のコマンド バーのキーボード アイコンを使用して、Azure 仮想マシンに NMI を送信できます。 NMI が配信されると、仮想マシンの構成によってシステムの応答方法が制御されます。 Linux オペレーティング システムは、オペレーティング システムが NMI を受信した場合に、クラッシュしてメモリ ダンプを作成するように構成できます。
NMI を有効にする
カーネル パラメーターを構成するための sysctl をサポートする Linux システムでは、次のコマンドを使用して、この NMI を受信するときにパニックを有効にすることができます。
- 以下の行を /etc/sysctl.conf に追加します。
kernel.panic_on_unrecovered_nmi=1 - を実行して sysctl を再起動または更新する
sysctl -p
unknown_nmi_panic、panic_on_io_nmi、および panic_on_unrecovered_nmi を含む Linux カーネル構成の詳細については、「/proc/sys/kernel/* のドキュメント」を参照してください。 NMI に関するディストリビューション固有のドキュメントと、NMI を受信したときにクラッシュ ダンプを作成するように Linux を構成する手順については、次のリンクを参照してください。
Ubuntu
Red Hat
SUSE
CoreOS
次のステップ
- 主要なシリアル コンソールの Linux ドキュメントのページについては、こちらを参照してください。
- シリアル コンソールを使用して、GRUB を起動し、シングル ユーザー モードに入る
- シリアル コンソールは、Windows VM でも使用可能
- ブート診断の詳細を表示する
お問い合わせはこちらから
ご質問がある場合は、 Azure コミュニティサポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。