
マジックSysRqキーはLinuxカーネルが認識するキーの組み合わせで、システムの状態に関係なく、ユーザーはさまざまな低レベルコマンドを実行できます。フリーズから回復したり、ファイルシステムを破壊せずにコンピュータを再起動したりするためによく使用されます。[1]その効果はコンピュータのハードウェアリセットボタン(または電源スイッチ) に似ていますが、オプションが多く、制御がはるかに優れています。
このキーの組み合わせにより、災害復旧機能にアクセスできます。この意味では、これはエスケープ シーケンスの一種と考えることができます。提供されるコマンドの主なものは、ファイル システムを強制的にアンマウントする、プロセスを強制終了する、キーボードの状態を回復する、書き込まれていないデータをディスクに書き込むなどの手段です。
マジックSysRqキーは、カーネルパニック[2]やハードウェア障害によりカーネルが正常に動作しなくなるなど、特定の条件下では機能しません。
コマンド
キーの組み合わせは、Alt+SysRqと、発行されるコマンドを制御する別のキーで構成されます。 が押されている 限り、コマンド キーを押す前にキーを放すことができます。SysRqAlt
組み合わせは常にQWERTYキーボード レイアウトを想定しています。[引用が必要]たとえば、Dvorak キーボード レイアウトでは、システムをシャットダウンする組み合わせでは、キーの代わりに キーを使用します。さらに、キーボードによっては、別のキーが提供されていない場合があります。この場合、別のキーが存在する必要があります。 ROSysRqPrtScn
一部のデバイス、特にノートパソコンでは、マジックキーを使用するために キーを押す必要がある場合があります。たとえば、Thinkpad Carbon X1では、 はとを同時に押し、 を押したままと を放すことでアクティブになります。[3] ChromeOSデバイスでは、はとを押すことでアクティブになります。 FnSysRqSysRq AltFnSFnSAltSysRq AltVolume Up (F10)<key>
SysRq 機能はキーボードなしでもアクセスできます。以下の § Magic SysRq を呼び出すその他の方法を参照してください。一部のコマンドは、のビットマスク値で指定されているように、デフォルトでは無効になっている場合があることに注意してください。/proc/sys/kernel/sysrq[ 4]
+コマンドの出力例: SysRqh
sysrq: ヘルプ: loglevel(0-9)、reboot(b)、crash(c)、terminate-all-tasks(e)、memory-full-oom-kill(f)、kill-all-tasks(i)、thaw-filesystems(j)、sak(k)、show-backtrace-all-active-cpus(l)、show-memory-usage(m)、nice-all-RT-tasks(n)、poweroff(o)、show-registers(p)、show-all-timers(q)、unraw(r)、sync(s)、show-task-states(t)、unmount(u)、force-fb(v)、show-blocked-tasks(w)、dump-ftrace-buffer(z)、replay-kernel-logs(R)
構成
この機能は、カーネル構成のコンパイル時オプションCONFIG_MAGIC_SYSRQと、sysctlカーネルパラメータkernel.sysrqの両方によって制御されます。
新しいカーネル(2.6.12 [7]以降)では、マジックSysRqキーの使用方法をより細かく制御できます。[8]これらのマシンでは、 /proc/sys/kernel/sysrqに書き込まれる数値は、0、1、または1より大きい数値で、許可する機能を示すビットマスクです。Ubuntuでは、これは起動時に/etc/sysctl.d/10-magic-sysrq.confで定義された値に設定されます。
用途
ジャーナリングされたファイルシステムの出現以前は、マジック SysRq キーの一般的な使用法は、ロックされた Linux コンピュータを安全に再起動すること (ニーモニックREISUBで示されるキー押下のシーケンスを使用) であり、これによりファイルシステムが破損するリスクが軽減されました。最近のファイルシステムでは、同期とアンマウントはフラッシュされていないデータを強制的にディスクに書き込むのに依然として有用ですが、ファイルシステムが破損するのを防ぐのに必要ではなくなりました (また、ロックアップがカーネルの不良状態によって引き起こされた場合、破損のリスクが増大する可能性があります)。[9] Ubuntu や Debian などのディストリビューションのkernel.sysrqのデフォルト値は、それぞれ 176 [要出典] (同期、アンマウント、および再起動機能を許可) と 438 [10] (同じ機能に加えて、loglevel、unraw、および nice-all-RT-tasks を許可) のままです。
過去には、X ウィンドウ システムがグラフィカル モードと入力デバイスを完全に制御していた ため、フリーズしたグラフィカルプログラムを強制終了する目的でも使用されていました。
テキストモードコマンドが含まれていないディストリビューションでは、[説明が必要]キー シーケンス+ + によってテキスト コンソールに強制的に切り替えられる場合があります。一部のシステムでは、の代わりにまたは を使用する必要があります。 CtrlAltF1F2F3F1
Magic SysRq を呼び出す他の方法
マジック SysRq キーは元々、デバッグ用のカーネルのキーボード ハンドラーの一部として実装されていましたが、その機能はproc ファイルシステム経由でも公開されており、ヘッドレス システムやリモート システムに拡張管理機能を提供するためによく使用されています。ユーザー空間プログラム (コマンド ライン シェルなど) からは、 /proc/sysrq-trigger (例: )に書き込むことで SysRq にアクセスできます。[1]echo s > /proc/sysrq-trigger
多くの組み込みシステムにはキーボードが接続されておらず、代わりにシリアルコンソールを使用して実行中のシステムへのテキスト入出力を行っています。シリアルブレーク信号を送信し、その後に目的のキーを押すことで、シリアルコンソール経由でMagic SysRq機能を呼び出すことができます。ブレークを送信する方法は、シリアルコンソールへの接続に使用される端末プログラムまたはハードウェアによって異なります。この機能を有効にするには、 sysctlオプションを設定する必要があります。[11]
Linuxデーモンsysrqd [12]とtcpconsole [13]は、プレーンテキストのパスワードで認証した後、TCP接続を介してSysRq機能にアクセスする方法を提供します。hangwatch [14]デーモンは、システム負荷平均が特定のしきい値を超える と、事前に設定されたSysRqトリガーを呼び出します。
Xenハイパーバイザーには、 xm sysrqコマンドを介してホストされたドメインにマジックコマンドを送信する機能があります。[15]さらに、ブレークシーケンス+に続いて目的のキーを送信することで、Xen準仮想コンソールからSysRqコマンドを呼び出すことができます。 CtrlO
Chromebookにはキーボードがありますが、専用のSysRqキーはありません。代わりに+ (+ )を使用します。[16] [17] [18]ただし、一部のキーは異なる機能を持っています。[19] [20]AltVolumeUpAltF10
IBM Power Systemsサーバーは、ハードウェア管理コンソールから+に続いて目的のキーを使用することで、Magic SysRq 機能を呼び出すことができます。 CtrlO
IBM メインフレーム パーティションは、 3270または HMC で+に続いて目的のキーを押すことで Magic SysRq 機能を呼び出すことができます。^-
参照
- Stop-A 、 Sun MicrosystemsのOpen Firmware (OpenBoot)にアクセスするために使用するキー シーケンス
- コンソールサーバー
- KVMスイッチ
- システムコンソール
参考文献
- ^ ab 「Linux Magic System Request Key Hacks」. kernel.org 2013-08-12 . 2017-05-21閲覧。
- ^ Khamlichi, Mel (2010 年 10 月 18 日)、「Use Magic SysRq Combination Key to Recover from a Frozen System in Linux」、Unixmen、2014 年 8 月 20 日時点のオリジナルよりアーカイブ、 2014 年9 月 21 日取得。
- ^ 「ラップトップでのAlt+SysRq」。Super User 。 2023年7月25日閲覧。
- ^ Linux マジック システム リクエスト キー ハック — Linux カーネル ドキュメント
- ^ Barnes, Jesse (2008-11-07). 「DRM: i915: モード設定サポートを追加」. Git (コミット). カーネル. 2013-08-31閲覧。
- ^ 「Linux Magic System Request Key Hacks」. 2021年9月13日. 2022年9月25日閲覧。
- ^ Calleja, Diego (2012-07-17). 「Linux 2.6.12」. Linux Kernel Newbies . 2013-08-31閲覧。
- ^ 「QA/Sysrq」. Fedora プロジェクト. 2013-05-09 . 2015-04-09閲覧。
- ^ 「ドキュメント: sysrq: 'B' の前に 'S' 'U' を置くことは推奨されません」。Git (コミット)。カーネル。2019-09-06。
- ^ 「4.9. Magic SysRq キーの使用を制限する」。Debianのセキュリティ保護マニュアル。2024年8 月 20 日閲覧。
- ^ Turner, Glen; Komarinski, Mark F (2003-03-31). 「Magic SysRq key」.リモートシリアルコンソールの使い方. Linux ドキュメンテーションプロジェクト. 2015-05-08に取得。
- ^ Danjou, Julien. 「sysrqd」。GitHub (プロジェクト) 。2016年9月13日閲覧。
- ^ ファン・ヒュースデン、フォルケルト。 「tcpコンソール」。 2017-08-31 のオリジナルからアーカイブ。2013 年 8 月 31 日に取得。
- ^ モーガン、ポール。 「ハングウォッチ」。GitHub 。2013 年 8 月 31 日に取得。
- ^ 「27. xm コマンド クイック リファレンス」、Enterprise Linux 5 仮想化ガイド、RedHat 、 2013 年 8 月 31 日取得
- ^ 「デバッグ ボタンのショートカット」。Chromium OS ドキュメント。2018年 10 月 22 日閲覧。
- ^ 「変更 29110: CHROMIUM: sysrq: F10 をマジック sysrq キーとして扱う」 。2016年 7 月 11 日閲覧。
- ^ 「Chromium OS dev: ChromiumOS カーネルの SysRq」 。2016年 7 月 11 日閲覧。
- ^ 「システムハングのデバッグを支援する」。Chromiumプロジェクト。2018 年 9 月 25 日閲覧。
- ^ 「CHROMIUM: sysrq: sysrq-x に Chrome/X へのシグナル送信機能を追加」 。2018年 4 月 12 日閲覧。
外部リンク
- 「Documentation/sysrq.txt」。Linux (カーネルソースツリー) 。kernel.org 。 2017年1月31日閲覧。
- 「Linux Magic System Request Key Hacks」。Linux (Linux カーネル ドキュメント)。kernel.org。2020年6 月 1 日閲覧。
- Morton, Andrew ( 2013-03-13 )。「/proc/sysrq-trigger 機能を追加した -mm ツリーへのカーネル パッチ: これにより、sysrq 機能がリモート ユーザーに利用可能になります」。2015-04-09 に取得。
- Lawrence, Tony (2005-04-13). 「Linux 上の Magic Sysrq Key」. AP Lawrence . 2015-04-09に閲覧。
- Gall, Tom (2000-04-01). 「Magic sys request」.開発者向け作業. IBM . 2007-05-27 にオリジナルからアーカイブ化. 2013-09-03に取得.
- [1]
