linux magic key之SysRq

2025-05-08 18:27:28

1、在键盘上我们可以看到一些很不常用的键:PrtSc/SysRq、ScrLk、Pause、Break等,但我们一直很少用,也搞不清楚它们有什么用。

2、而在linux下,当我们的系统发生故障,内核仍在运行,键盘依旧可以用,只是没办法登陆或者重启电脑(按电脑重启键除外),这时,我们可以使用“SysRq魔法键(magic SysRq key)”来实现安全关机。

3、SysRq魔法键可以通过PC键盘上的ALT和SysRq组合键来激活,在其他平台可通过其他特殊键来激活(内核源码中Documentation/sysrq.txt文档有说明)。

4、为什么要安全关机

5、在linux下,为了提高性能,会把大量的数据缓存在内存中,直到有内存页的换入换出,鸬钟召蜗才会把相应的数据写回磁盘,故其不是实时同步剞麽苍足数据到磁盘,这时,只有手动触发sync或其他条件,内核才会把数据从内存写回物理磁盘。

6、当在运行linux时出现键盘可操作,但系蕙蝤叼翕统无法登陆,并且“CTRL+ALT+DEL”组合键也无法使用,只有内核在运行时,即内核并没有完全的挂掉,此时,如果我们强行关机或重启,将会造成数据的丢失,导致文件系统损坏,此时就可以使用SysRq这一魔法。

7、开启SysRq

8、1)、内核的支持

9、要启用SysRq,内核必需有对CONFIG_MAGIC_SYSRQ的支持才可以使用,现在很多linux发行版已支持该功能,比如我的Ubuntu10.04就可以支持了,如何验证是否开启呢?只需要如下命令即可:

10、grep “CONFIG_MAGIC_SYSRQ” /boot/config-`uname – r`

11、当返回值为CONFIG_MAGIC_SYSRQ=y,即是默认是支持的。

12、2)、启用SysRq

13、首先,我们可以通过下面命令查看SysRq是否开启:

14、cat /proc/sys/kernel/sysrq

15、当返回1时则开启,0时则关闭。

16、那么我们如何手动控制其开启呢?可以如下操作:

17、a、要激活SysRq,则执行下面命令:

18、echo &孥恶膈茯quot;1" > /proc/sys/kernel/sysrq或sysctl -w kernel.sysrq=1(即通过sysctl命令启用它,kernel.sysrq除了0和1外,还可启用其他参数,可参考sysrq内核文档。)

19、b、要关闭SysRq,则执行下面命令:

20、echo "0" > /proc/sys/kernel/sysrq或sysctl -w kernel.sysrq=0

21、如果我们要每次开机都启用SysRq功能,那么我们可以进行如下操作:

22、在/etc/sysctl.conf文件中添加如下一行内容:

23、kernel.sysrq=1

24、重启后即可生效。

25、使用SysRq

26、网上有道题,问在只有 shell,init、halt、shutdown 等命令都不工作的情况下如何重启系统。答案就是 SysRq。

27、1)、常见的SysRq功能键

28、在发生故障,SysRq是开启的,并且键盘是有响应的(说明Linux内核没完全挂掉),就可以使用SysRq魔法,在标准的QWERTY键盘中,可以使用“Alt+SysRq+功能键”方式调用相关的功能。

29、可用的SysRq功能键如下:

linux magic key之SysRq
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢