Technology

Linux暴走時にやる奥の手(Magic System Request Key)

Kotaです。

LinuxがRebootもShutdownも受け付けなくなった時、、

パワーボタン長押し?Ctrl+Alt+Delもうけつけない?

どーします?どっちみちFilesystemの破損が怖いですよね。。

強制パワーダウンの前に、、方法があります。キーボードをよーく見てみてください。

画像のSysreqというキーがあります。たぶんほとんど使った事ないと思いますw

だけどもこいつはなかなかスグレモノです。

KernelPanic以外ならプロセスが暴走してようがKernelに割り込み処理を行えます。

よーは比較的安全にShutdownができます。

もちろんどーしようも無い時の最終手段ですが電源落としより安全です。

しかしこいつを使うには大抵のインストール時には無効化されています。

下記コマンドで有効化します。

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

もしくは、

/etc/sysctl.confで

Kernel.sysrq = 1

を追記してsysctl -pです。

これでMagic System Requestが使えるようになります。

操作方法は、、ココから拝借

キーの種類 SysRqヘルプ表示 動作内容
0-9 loglevel0-8 ログレベル操作 (/proc/sys/kernel/printk と同じ)
b reBoot システムリブート
c Crash カーネルパニックを発生させる
e tErm init以外の全プロセスにSIGTERMシグナル送信
i kIll init以外の全プロセスにSIGTERMシグナル送信
k saK 仮想端末上の全プロセスにSAK(Secure Attention Key)を実行
m showMem メモリ情報表示
p showPc カレントプロセスの情報(バックトレース)表示
r unRaw キーボードrawモードをXLATEに設定
s Sync マウントされている全ファイルシステムのsync
t showTasks 全プロセスの情報(バックトレース)表示
u Unmount readonlyで全ファイルシステムの再マウント
w shoWcpus 全CPUのコールトレース情報表示

具体的にどうするの??

Alt+PrtScrnを押してから上記のキーを押します。

  1. Atl+PrtScrn+sでバッファをHDDに落とし(Sync処理)
  2. Atl+PrtScrn+uでファイルシステムをアンマウント&ReadOnlyでマウント
  3. Atl+PrtScrn+bでReboot

これで少なくとも強制パワーダウンより安全に再起動が可能です。

ssh越しとかにやるには?

もちろん方法があります。

  1. echo s > /proc/sysrq-triggerでバッファをsync
  2. echo u > /proc/sysrq-triggerでアンマウント&ReadOnlyでマウント
  3. echo b > /proc/sysrq-triggerで強制Reboot

こんな感じです。

あ?常識だぜ!って思われる方もいらっしゃるかもしれませんがそだったらスイマセン

お役に立てれば幸いです。

コメントを残す