Alt + sysrq + REISUBでラップトップが再起動しない


59

時々、ラップトップが動かなくなったため、Alt+ SysRq+のマジックキーの組み合わせを使用REISUBして、安全な再起動を実行しました。ただし、Bキーを押して魔法のキーコマンドを完了すると、単に「リセットしています...」と表示され、何も実行されないため、機能しないようです。

他のすべてのキーは、キーボードレイアウトをリセットしたり、すべてのタスクを強制終了したりするため、正常に動作するように見えますが、再起動では完了しないようです。

REISUBの順序でマジックキーをすべて押した後、ラップトップを再起動する必要があるという印象を受けました。

回答:


58

バグを修正するためにAlt + SysRqが無効になりました。Magic-SysRqの無効化はそれ自体がバグと見なされていたため、再度有効化されました(#1025467)。それでもまだ無効になっている場合は、再度有効にすることができます。

Ubuntu 12.04以前

/etc/sysctl.confファイルを編集して、次の行を含めます。

kernel.sysrq=1

Ubuntu 12.10以降

Ubuntu 12.10以降では、Magic-SysRq機能を有効にするより詳細な制御が可能です。ファイル/etc/sysctl.d/10-magic-sysrq.confを編集するだけです。

ファイルには十分なドキュメントがあり、どの機能を有効にするかを正確に説明しています。現在のデフォルトはセキュリティの目的で選択されており、なぜ必要なのかがわかっている場合にのみ変更する必要があります(セキュリティの意味については#194676を参照)。


6
いいえ、そうではありません。それは、マーベリック、ナッティ、ワンリリック、そして正確にうまく機能します。
-psusi

バグを解決するために実際には無効にされていましたが、再び有効にされました。答えを更新しました。質問をもう少し一般的になるように編集する必要がありますか?
-mniess

1
@geezanansa コメントはまだ熱いうちに編集できます。複数の連続したコメントを追加しないでください。また、SysRqは13.04で動作します。ただし、インストール後にのみ、ライブDVDで試してはいけません。したがって、この回答の賛成票はわかりません。これは非常に短い期間であるためです(バグレポートを参照)。;)
gertvdijk

1
@gertvdijk:私が言及した質問etc / sysctl.d / 10-magic-sysrq.confを更新したとき、それぞれの機能をすべて有効にするために必要なすべてのsysrqパラメーターが含まれています。(2010年に)質問されたとき、バグが原因で "b"がデフォルトで実際に非アクティブ化されたため、実際に解決策でした。私は答えを意図的にもっと一般的なものに変更しました。sysrqが完全に機能不全であり、部分的に機能不全であるという質問に答えます。
mniess

1
@geezanansa、はい、私はその掲示した後、彼らは、量子的にそれを無効だと思う
psusi

31

ここではキーボードが問題です!

  • 4キーを同時に押したくないという人もいれば、キーボードを離すまでキーボードを停止する人もいます。
  • SysRq信号を送信すると、すべてのキーボードがQWERTYレイアウトに変わります。これにより、別のレイアウトのキーボードで正しいコマンドを見つけることが難しくなります。ウィキペディア:SysRqコマンドは、一般的な代替レイアウトに適したものを見つけるためのテーブルを表示します。
  • いくつかは、ファンクションキーで保持するSysRq以外のキーPrtScを持っています。私のラップトップでは、これはFn+ Endです。保持Alt+ PrtScは、何らかのシステムプロセス(ウィンドウマネージャー?)が翻訳してくれた場合にのみ機能します。完全なクラッシュでは、実際の SysRq動作のみです!
  • いくつかはSysRq、(ハードウェアによって) Alt +を押した後にのみキーをトリガーしますPrtSc。上記と同じ理由で、左Altキーはこのような場合には機能しません。これが私のUSBキーボードの仕組みです。
  • ヒント:Shift+ Alt+ SysRqを押すと、仮想端末で「ヘルプ」出力が表示されます。これは、害を及ぼさずに機能しているかどうかを確認するのに役立ちます。

    SysRq:HELP:loglevel(0-9)reBoot Crash terminate-all-tasks(E)memory-full-oom-kill(F)kill-all-tasks(I)thaw-filesystems(J)saK show-backtrace-all -active-cpus(L)show-memory-usage(M)nice-all-RT-tasks(N)powerOff show-registers(P)show-all-timers(Q)unRaw Sync show-task-states(T) show-blocked-tasks(W)dump-ftrace-buffer(Z)をアンマウントします

私が出くわしたすべてのケースで、それは機能しませんでした。キーボードの交換は完全に機能し、カーネルの設定に何も問題がないことを示しました。


2
@geezanansa特定の4キーの組み合わせをキーボードが処理できないことは明らかです。それを置き換えることで問題は解決しました。本当に。それはすべてのために働くことがあなたけれども、キーボード。そして、もしあなたが賛成票を理解していないなら、なぜあなたが理解しないのかを説明してみませんか?
gertvdijk

2
Jamesを考慮すると、Bを除くすべてのsysrqコマンドが機能することを確認します。この回答は、なぜsysrq Bが機能しないのかを読んだ質問に対する回答ではありません。キーボードは、sysrqに関するJamesやその他の多くの人にとっては問題ではありません。-1
ギーザナンサ

17

属性
https : //fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key これは、
Credits によるオリジナルの作品に基づいてい
たMydraal
によって書かれたAdam Sulmicki
によって更新されたJeremy M. Dolanによって更新された2001/01/28 10:15:59
追加クラッチャー・ダンナヴァンによる

https://askubuntu.com/a/11194/102029 mneissはLaunchPadのリンクを提供しました。

内容

sysrqとは何ですか?
RESIUB(O)が機能しないのはなぜですか?

1 sysrqを希望どおりに動作させるにはどうすればよいですか?
1.1魔法のSysRqキーとは何ですか?
1.2マジックSysRqキーを有効にするにはどうすればよいですか?
1.3マジックSysRqキーを使用するにはどうすればよいですか?
1.4「コマンド」キーとは何ですか?
1.5さて、それで何のために使うことができますか?

1.6トラブルシューティング

1.6.1ハンギング初期化スクリプトを実行する前に取得
1.6.2を時々 SysRqを私は何を行うことができ、それを使用した後に「立ち往生」を取得するようですか?
1.6.3 SysRqにアクセスしましたが、何も起こらないようですが、何が問題なのですか?
1.6.4 SysRQキーイベントをモジュールに追加したいのですが、どのように機能しますか?
1.6.5結論
1.6.6付録
注。
あなたは使用して見つけることがCtrl+にF役立つ目次を使用します。

SysRqとは何ですか?

システムファイルの破損やデータの損失につながるディスク破損のリスクを制限しながら、フリーズまたはロックした後、マシンの使用を回復する一般的なよく使用されている方法は、
Alt+ SysRq+ を使用rしてからs、次にe、次にi、次にu、次にb、/または必要に応じて(o

これは、8.04LTS以上から現在の13.04リリースまでのすべてのフレーバーを通じて、多くの人(つまり、私とジェームス)の期待どおりに機能していません。

RESIUB(O)が機能しないのはなぜですか?

LaunchPad Bug 194676にあるこのバグの説明を検討してください。

問題の説明:
デフォルトでは、SysRqはUbuntuデスクトップシステムでデフォルトで有効になっています。これは、システムがロックアップした場合に非常に貴重であり、できるだけ静かに停止するか、問題をデバッグします。ただし、多くの人は、キーボードからだけではあるが、現在のメモリの内容をコンソール(またはdmesg)にダンプするように要求できることに驚いています。
openSUSEは、SysRqにデフォルトの176のビットマスクを設定します。デフォルトでは、同期、再起動、「読み取り専用での再マウント」に制限されます。これにより、デフォルトでsysrqを使用して、適切に聞こえるメモリを検査するユーザーが停止します。

Ubuntu開発者はこれについて何かをする必要があると考えており、言及された観察の可能性のある複雑さを考慮した最良のソリューションは、デフォルトでビットマスク176 sysrqを適用し、sysrqを希望どおりに設定する必要性を作成することです。ビットマスク176は唯一のことができますSUB同期、再マウントに取り付けられたパーティションと再起動されています。
完全なバグレポートとコメントを読むと、システムに適用できるオプションがいくつか強調表示されます。

異なるハードウェア、カーネル、キーボード、ビットマスクの累積的な影響は、sysrqが異なる人々に対して異なる動作をすることを意味します。

システムがsysrqをどのように使用しているかに関するtxt出力を取得する1つの方法は、ttyからsysrqコマンドを適用することです(システムがロック/フリーズに苦しんでいない場合)。これを行うと、sysrqが完全に無効化されていないが、ビットマスク176を使用している可能性があります。

13.04デスクトップamd64 liveDVDおよび13.04デスクトップamd64インストールで/ proc / sys / kernel / sysrqを検索すると、デフォルトでは現在sysrqがビットマスク176のままになっていることが確認されます。

sysrqが機能する場合; 「10-magic-sysrqの設定を変更しなかった場合、誰が変更したか?」と尋ねる価値があるかもしれません。

1 sysrqを希望どおりに動作させるにはどうすればよいですか?

以下はhttps://fedoraproject.org/wiki/QA/Sysrqの編集されたコピーと貼り付けです。

1.1魔法のSysRqキーとは何ですか?

これは、完全にロックされていない限り、他に何をしていてもカーネルが応答する「魔法の」キーコンボです。

1.2マジックSysRqキーを有効にするにはどうすればよいですか?

sysrqはUbuntuカーネルに組み込まれていますが、起動時にはデフォルトで10-magic-sysrq.confを使用して無効になっています。

起動時に再度有効にするには、/ etc / sysctl.d / 10-magic-sysrq.confファイルを編集する必要があります。つまり、この行のコメントを解除すると、sysrqのすべての機能が有効になります。

#   1 - enable all functions of sysrq

SysRqがコンパイルされたカーネルを実行する場合、/ proc / sys / kernel / sysrqは、SysRqキーを介して起動できる機能を制御します。/ proc / sys / kernel / sysrqで可能な値のリストは次のとおりです。

0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function description):
    2 - enable control of console logging level
    4 - enable control of keyboard (SAK, unraw)
    8 - enable debugging dumps of processes etc.
    16 - enable sync command
    32 - enable remount read-only
    64 - enable signalling of processes (term, kill, oom-kill)
    128 - allow reboot/poweroff
    176 - allow only sync, reboot and "remount read-only"
    256 - allow nicing of all RT tasks 

次のコマンドを使用して、ファイルに値を設定できます。

echo "number" >/proc/sys/kernel/sysrq

したがって、完全に有効にするには、次のようになります。

echo "1" > /proc/sys/kernel/sysrq

または、実行して有効にすることもできます。

sysctl -w kernel.sysrq=1  

注意。
/ proc / sys / kernel / sysrqの値は、キーボードを介した呼び出しのみに影響します。/ proc / sysrq-triggerを介した操作の呼び出しは常に許可されます(管理者権限を持つユーザーが以下を参照してください)。

1.3マジックSysRqキーを使用するにはどうすればよいですか?

Ubuntuデスクトップ

キーコンボAlt+ SysRq+を押しますcommand key

NB-他のシステムとキーボードのその他のデフォルト設定については、このセクションとトラブルシューティングのセクションの注意を参照してください。

選択した任意のキャラクターを設定することが可能です:すべてのアーキテクチャ

/ proc / sysrq-triggerに文字を書き込みます。

echo t > /proc/sysrq-trigger

Tとして動作を設定しますSysRq

一部のキーボードには、というラベルの付いたキーがない場合がありますSysRqSysRqキーとしても知られているPrint Screenキー。また、一部のキーボードは非常に多くのキーが同時に押されて扱うことができないので、あなたはより良い運を持つ可能性がありますAlt+をSysRq- SysRqして押しcommand key、その後、すべてを解放します。これに関する詳細については、https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3Fに基づいたQAの全文を参照してください

1.4「コマンド」キーとは何ですか?

'b' - Will immediately reboot the system without syncing or unmounting your disks.
'c' - Will perform a kexec reboot in order to take a crashdump.
'd' - Shows all locks that are held.
'e' - Send a SIGTERM to all processes, except for init.
'f' - Will call oom_kill to kill a memory hog process.
'g' - Used by kgdb on ppc and sh platforms.
'h' - Will display help (any key that is not listed here will bring forth help )
'i' - Send a SIGKILL to all processes, except for init.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual terminal.  

注意。
SAKセクションの以下の重要なコメントを参照してください。

'l' - Shows a stack backtrace for all active CPUs.
'm' - Will dump current memory info to your console.
'n' - Used to make RT tasks nice-able
'o' - Will shut your system off (if configured and supported).
'p' - Will dump the current registers and flags to your console.
'q' - Will dump a list of all running timers.
'r' - Turns off keyboard raw mode and sets it to XLATE.
's' - Will attempt to sync all mounted filesystems.
't' - Will dump a list of current tasks and their information to your console.
'u' - Will attempt to remount all mounted filesystems read-only.
'v' - Dumps Voyager SMP processor info to your console.
'w' - Dumps tasks that are in uninterruptable (blocked) state.
'x' - Used by xmon interface on ppc/powerpc platforms.
'0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.) 

1.5さて、それで何のために使うことができますか?

rXサーバーまたはsvgalibプログラムがクラッシュした場合、Un awは非常に便利です。

Sa k(セキュアアクセスキー)は、ログインしようとするときにパスワードを取得する可能性のあるトロイの木馬プログラムがコンソールで実行されていないことを確認する場合に役立ちます。指定されたコンソール上のすべてのプログラムを強制終了するため、表示されるログインプロンプトが実際には何らかのトロイの木馬プログラムではなくinitからのものであることを確認できます。他の人は、(システムアテンションキー)として便利だと感じています。これは、コンソールを切り替えさせないプログラムを終了したいときに便利です。(たとえば、Xまたはsvgalibプログラム。)
注。
本当の形では、c2準拠のシステムのような真のSAKではなく、そのように誤解されるべきではありません。

bあなたがシャットダウンできませんときOOT良いです。
注意。
一般に、u最初にマウントすることをお勧めします

Crashdumpはc、システムがハングしたときに手動でrashdump をトリガーするために使用できます。
注意。
カーネルは、CONFIG_KEXECを有効にして構築されている必要があります!

同期は、システムがロックされている場合にs最適です。ディスクをync できるため、データ損失やfsckingの可能性が確実に減少します。
警告
「OK」と「完了」が画面に表示されるまで、同期は行われません。(カーネルが実際に争っている場合、「OK」または「完了」のメッセージが表示されない場合があります。

Uマウントは、Sync と同じ方法で基本的に便利です。

ログレベル0- 9コンソールが見たくないカーネルメッセージであふれている場合に便利です。選択する0と、最も緊急のカーネルメッセージ以外のすべてがコンソールに到達しなくなります。
注意。
syslogd / klogdが生きている場合、それらはまだ記録されます

T ermとk illは、他の方法を殺すことができない何らかの暴走プロセスがある場合、特に他のプロセスを生成する場合に役立ちます。
注意。
悪いカーネルパニックが発生した場合は、Alt+ Sysrq+ eAlt+ Sysrq+ uAlt+ Sysrq+ i、最後にAlt+ Sysrq+b

1.6トラブルシューティング

1.6.1 initscriptが実行される前のハング

initscriptが実行される前にマシンがハングしている場合は、 sysrq_always_enabled=1

1.6.2 SysRqを使用した後に「スタック」したように見える場合がありますが、どうすればよいですか?

タッピングshiftalt、およびcontrolキーボードの両側に、問題を解決します再び無効にSysRqシーケンスを打ちます。(つまり、alt+ sysrq+のようなものz)。

別の仮想コンソール(Ctrl+ Alt+ Fn1- Fn6)に切り替えてから再び戻るCtrl+ Alt+ Fn7も役立つはずです。

1.6.3を押しましたSysRqが、何も起こらないようですが、何が問題なのですか?

SysRq定義済みの0x54とは異なるスキャンコードを送信するキーボードがいくつかあります。そのSysRqため、特定のキーボードですぐに機能しない場合は、実行showkey -sして適切なスキャンコードシーケンスを見つけます。次にsetkeycodes <sequence> 84、このシーケンスを通常のSysRqコードに定義するために使用します(84は0x54の10進数です)。おそらく、このコマンドをブートスクリプトに含めるのが最善です。
警告 10秒間何も入力しないで
終了showkeyします。

1.6.4 SysRqモジュールにキーイベントを追加したいのですが、どのように機能しますか?

基本関数をテーブルに登録するには、最初にheaderを含めるinclude/linux/sysrq.h必要があります。これにより、必要な他のすべてが定義されます。次に、sysrq_key_op構造体を作成し、それを設定する必要があります...

  • 使用するキーハンドラー関数。

  • SysRQがヘルプを印刷するときに印刷されるhelp_msg文字列

  • ハンドラーが呼び出される直前に出力されるaction_msg文字列。ハンドラーは 'sysrq.h'のプロトタイプに準拠する必要があります

sysrq_key_opが作成された後、カーネル関数register_sysrq_key(int key、struct sysrq_key_op * op_p);を呼び出すことができます。これは、テーブルのそのスロットが空白の場合、テーブルキー「key」で「op_p」が指す操作を登録します。モジュールのアンロード時に、関数unregister_sysrq_key(int key、struct sysrq_key_op * op_p)を呼び出す必要があります。この関数は、キー 'key'から 'op_p'が指すキーopを削除します。スロット。これは、登録してからスロットが上書きされた場合です。

Magic SysRqシステムは、 'drivers / char / sysrq.c'で定義されているキーopルックアップテーブルに対してキー操作を登録することにより動作します。このキーテーブルには、コンパイル時に多数の操作が登録されていますが、可変であり、2つの関数がregister_sysrq_keyおよびunregister_sysrq_keyへのインターフェイスとしてエクスポートされます。もちろん、テーブルに無効なポインタを残さないでください。すなわち; register_sysrq_key()を呼び出したモジュールが終了したら、unregister_sysrq_key()を呼び出して、使用したsysrqキーテーブルエントリをクリーンアップする必要があります。
注意。
テーブル内のNULLポインターは常に安全です。

何らかの理由で、handle_sysrqによって呼び出された関数内からhandle_sysrq関数を呼び出す必要があると感じた場合は、ロック状態にあることに注意する必要があります(また、割り込みハンドラーにいるため、スリープしません!)。代わりに__handle_sysrq_nolockを呼び出す必要があります。

1.6.5結論

使用Alt+ SysRq+ S、その後U、その後B、すべてのマウントされたファイルシステムを再マウントして、必要に応じて再起動しようとする試みを同期します。ものをシステムファイルに変更することなく。+ + がシステムを再起動しない
場合は、+ + (または/ proc / sys / kernel /を編集した後) sysrqを使用してシステムの再起動とシャットダウンを有効にするsysrqビットマスク上記の方法のいずれかでこれを行うことができます。AltSysRqBAltSysRqBO

1.6.6付録: 参照-http://ubuntuforums.org/showthread.php?t = 617349およびhttps://www.kernel.org/doc/Documentation/sysrq.txt

SysRqをに関するアップルのMacBookのキーボードのトラブルを持つ人のために参照してください。https://help.ubuntu.com/community/AppleKeyboardhttps://bugs.launchpad.net/mactel-support/+bug/262408

比較的興味深い情報- 2013年8月17日のBBCプログラム「クリック」と「サイバー戦争」のエピソードを見て、本当に注目を集めました。プログラムには独自のWebサイトもあります。プログラムを視聴できない場合はクリックしてください。FAWC


2
特に、完全に更新されたQuantal i386システムでAl + SysRq + REISUBをテストしたところ、正常に動作します。リンクされたセキュリティバグ、またはこの回答のセキュリティに関する説明の一部は、本当に問題に関連しているのでしょうか?もしそうなら、それはこの答えの最初に現れるべき問題の十分に一般的な原因ですか?
エリアケイガン

ブート時にビットマスク176が適用されるため、sysrqコマンドの完全なセットが利用できないため、セキュリティの問題は重要です。バグレポートで説明されているように。
ゲザナンサ

3

先日、これに遭遇しましたが、動作するまでに数秒かかりました。REISUBシーケンス全体を2回実行したこともあります。

また、sysrqキーを使用していることを確認します(ほとんどのラップトップでは、機能を押し続ける必要があるため、実際には一度に4つのキーを押しています)


返信ありがとうございます。ファンクションキー(fn)をaltおよびsysrqと共に押したままにする必要があります。REISUBシーケンスを完了するために最後のBキーを押すと、ラップトップが表示された後にロックアップしているように見えます。そのため、再起動するときにシステムがロックアップするように見えます。
ジェームズホワイト

3

数年前、私が使用するために使用Alt+ SysRq+ SUBO再起動したりするには、電源オフ、あなたのために、のようなので、スタックマシンをAlt+ SysRq+ B時々仕事をしたくありませんでした。

(また、私が使用しての習慣に取得する必要がありますAlt+ SysRq+はEI最初の。私が使用しての多くのポイントが表示されていないAlt+ SysRq+ R、なぜ再起動し、とにかくそれをリセットするために起こっている場合は、キーボードモードの問題をしますか?ので)


1
とにかく再起動してリセットする場合、キーボードモードが重要なのはなぜですか?キーボードに入力機能を戻すためですか?再起動や電源オフの必要がないことを意味する場合があります
-geezanansa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.