Answers:
Alt + SysRq已被禁用以修复错误。禁用Magic-SysRq本身被认为是一个错误,此后已重新启用它(#1025467)。如果您仍然禁用它,则可以重新启用它:
编辑文件/etc/sysctl.conf以包含该行
kernel.sysrq=1
从Ubuntu 12.10开始,可以更精细地控制启用了Magic-SysRq功能的位置。只需编辑文件/etc/sysctl.d/10-magic-sysrq.conf即可。
该文件有据可查,可以准确地告诉您如何启用哪些功能。选择当前默认值是出于安全目的,并且只有在知道为什么需要时才可以更改(出于安全隐患,请参阅#194676)。
键盘是这里的问题!
提示:尝试点击Shift+ Alt+ SysRq在虚拟终端上查看“帮助”输出。这对于查看它是否在工作时不会造成任何伤害很有用:
SysRq:帮助:日志级别(0-9)reBoot崩溃终止所有任务(E)内存已满oom-kill(F)杀死所有任务(I)解冻文件系统(J)saK show-backtrace-all -active-cpus(L)show-memory-usage(M)不错的所有RT-tasks(N)powerOff show-registers(P)show-all-timers(Q)原始同步show-task-states(T)卸载show-blocked-tasks(W)dump-ftrace-buffer(Z)
在所有情况下,我都发现它不起作用,更换键盘可以正常工作,并且表明任何内核设置都没有问题。
属性:
https :
//fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key 基于Mydraal撰写的
Credits 的原始作品,
由Adam Sulmicki
更新,由Jeremy M. Dolan更新2001/01/28 10:15:59
添加由Crutcher Dunnavant撰写
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使用目录会有所帮助。
在机器冻结或锁定后重新使用机器,以限制导致系统文件损坏或数据丢失的磁盘损坏风险的一种常见的众所周知的使用方法是,先使用
Alt+ SysRq+ r然后s再e然后i再u然后再然后b和//或根据需要(o)
从> = 8.04LTS到当前的13.04版本,许多人(即我和James)在所有版本中均未按预期工作。
考虑在LaunchPad错误194676中找到的以下错误描述:
问题描述:
默认情况下,在Ubuntu桌面系统上默认启用SysRq,这在系统锁定且您希望尽可能缓慢地停止它或调试问题时非常有用。但是,许多人感到惊讶的是,即使仅从键盘上,您也可以要求它将当前内存的内容转储到控制台(或dmesg)。
openSUSE在其SysRq上将默认位掩码设置为176,默认情况下会限制您同步,重新引导和“只读挂载”。这会阻止人们默认使用sysrq来检查听起来很明智的内存。
Ubuntu开发人员认为有必要对此做些事情,考虑到上述观察结果可能带来的复杂性,最好的解决方案是默认情况下应用bitmask 176 sysrq,这会产生用户输入以根据需要设置sysrq的需求。位掩码176只允许S,U,B这是同步,重新装入挂载的分区和重新启动。
阅读完整的错误报告和注释将突出显示一些可能适用于您的系统的选项。
不同硬件,内核,键盘和位掩码的累积影响意味着sysrq对于不同人群的行为方式也有所不同。
获取有关系统如何使用sysrq的txt输出的一种方法是从tty中应用sysrq命令(当系统不受锁定/冻结影响时)。这样做可能表明sysrq尚未完全禁用,但正在使用位掩码176。
在13.04桌面amd64 liveDVD和13.04桌面amd64安装上搜索/ proc / sys / kernel / sysrq,确认当前默认设置是将sysrq保留在位掩码176。
如果sysrq为您工作;可能值得一问:“如果我没有更改10-magic-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
注”。
某些键盘可能没有标有的键SysRq。该SysRq键也被称为Print Screen关键。还有些键盘无法处理被压在同一时间这么多钥匙,所以你可能有更好的运气Alt+ SysRq- SysRq然后按command key再放开一切。有关更多信息,请参阅本指南基于https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F的质量检查全文。
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好,那我该怎么用呢?
r当您的X服务器或svgalib程序崩溃时,un aw非常方便。
k当您要确保控制台上没有运行任何木马程序时,Sa (安全访问密钥)很有用。当您尝试登录时,该木马程序可以获取您的密码。它将杀死给定控制台上的所有程序,从而使您确保看到的登录提示实际上是init上的登录提示,而不是某些特洛伊木马程序。其他人认为它很有用(系统注意键),当您要退出不允许您切换控制台的程序时,它很有用。(例如,X或svgalib程序。)
注意。
以其真实形式,它不像c2兼容系统中的那样,是真正的SAK,因此不应将其错误地认为。
重新bOOT当你无法关闭好。
注意。
一般认为先u安装是个好习惯
c当系统挂起时,可以使用Crashdump手动触发rashdump。
注意。
必须在启用CONFIG_KEXEC的情况下构建内核!
当系统被锁定时,同步非常s有用,它可以使磁盘同步,并且肯定会减少数据丢失和fscking的机会。
警告
在屏幕上看到“确定”和“完成”之前,尚未进行同步。(如果内核确实处于冲突状态,则可能永远不会收到OK或Done消息。
Umount基本上与Sync 一样有用。
日志级别0- 9在您的控制台上充满您不想看到的内核消息时很有用。选择0将阻止所有最紧急的内核消息到达控制台。
注意。
如果syslogd / klogd仍然存在,它们仍将被记录
牛逼eRM和K i,如果你有某种失控的过程中,你都无法杀死任何其他方式,特别是如果它的产卵其他进程LL是有用的。
注意。
当遇到严重的内核恐慌时,先执行Alt+ Sysrq+ e然后Alt+ Sysrq+ u然后Alt+ Sysrq+ i最后是Alt+ Sysrq+b
1.6故障排除
1.6.1在运行初始化脚本之前挂起
如果计算机在初始化脚本开始运行之前就挂起了,请使用 sysrq_always_enabled=1
1.6.2有时SysRq在使用后似乎卡住了,该怎么办?
攻丝shift,alt以及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)。最好将这个命令放在启动脚本中。
警告
您退出showkey
十秒钟不输入任何内容。
1.6.4我想向SysRq模块添加关键事件,它如何工作?
为了向该表注册基本功能,您必须首先包括header include/linux/sysrq.h
,这将定义您需要的所有其他内容。接下来,您必须创建sysrq_key_op结构,并使用...填充它。
您将使用的密钥处理程序功能。
一个help_msg字符串,将在SysRQ打印帮助时显示
一个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'中定义)注册关键操作来工作。该密钥表在编译时已向其注册了许多操作,但该表是可变的,并且导出了两个函数作为其接口,分别是register_sysrq_key和unregister_sysrq_key。当然,永远不要在表中留下无效的指针。即 当调用register_sysrq_key()的模块退出时,它必须调用unregister_sysrq_key()来清理其使用的sysrq密钥表条目。
注意。
表中的空指针始终是安全的。
如果由于某种原因您需要从handle_sysrq调用的函数中调用handle_sysrq函数,则必须知道自己处于锁定状态(也处于中断处理程序中,这意味着不要入睡!),因此您必须改为调用__handle_sysrq_nolock。
使用Alt+ SysRq+ S,然后U再B同步,尝试重新安装所有已挂载的文件系统,然后根据需要重新启动。无需更改系统文件。
如果Alt+ SysRq+ B不重新启动系统,可能需要编辑/etc/sysctl.d/10-magic-sysrq.conf为了让应用的尝试Alt+ SysRq+ B(或/和O编辑后的/ proc / sys目录/内核/ sysrq位掩码,可通过使用sysrq来重新引导和关闭系统,您可以通过上述任何一种方法来执行此操作。
1.6.6附录: 另请参见-http://ubuntuforums.org/showthread.php?t = 617349和https://www.kernel.org/doc/Documentation/sysrq.txt
对于那些与sysrq有关的Apple MacBook键盘故障的人,请参阅:https ://help.ubuntu.com/community/AppleKeyboard 和https://bugs.launchpad.net/mactel-support/+bug/262408
相对有趣的信息- 在观看了2013年8月17日的BBC节目“点击”和“网络战争”文章后,我的注意力引起了我的注意。该程序还具有自己的网站如果您不能观看该程序,请单击。一汽世界
前几天,我遇到了这个问题,花了几秒钟来工作。我什至可能已经完成了整个REISUB序列两次。
另外,请确保您使用的是sysrq键(大多数笔记本电脑都需要按下功能键,因此您实际上一次按下了4个键)
几年前,我曾经使用Alt+ SysRq+ S,U,B,O重启或关机卡住机器,因为我喜欢你,Alt+ SysRq+ B有时候不想工作。
(另外,我要养成使用习惯Alt+ SysRq+ E,I第一,我不认为使用多点Alt+ SysRq+ R,因为为什么键盘模式问题,如果它要重新启动,反正复位吗?)