Linux下的安全硬重启

学峰的学习笔记 2011-05-05

我的笔记本没有硬重启键,由于笔记本的驱动没有linux版的,所以在linux偶尔死机之后只能强制关机,再开机。无意间读到网上一篇文章,是关于linux系统下的硬重启的,这个方法对于一般的硬重启的优点是可以保存当前状态,不至于信息丢失。摘录如下,但已不知原出处,在此对原作者表示感谢。

Linux也会死机吗?会,当然会.如果死机了,怎么办?直接按电源键重启?这太危险了.一不小心,机器就挂了.但是系统已经无响应了,键盘与鼠标都不能动,不按电源键重启怎么办?好办,办法还是有的.

此种情况,要以这样操作:

叫做reisub,这个方法可以在各种情况下安全地重启计算机。大家在键盘上找,可以找到一个叫做“SysRq”的键,在台机的键盘上通常与PrtSc共键,在笔记本可能在其他位置,如Delete。以台机为例,要使用这种方法需要按住Alt-Print(SysRq),然后依次按下reisub这几个键,按完b系统就会重启。

下面解释一下这个方法:其实SysRq是一种叫做系统请求的东西,按住Alt-Print的时候就相当于按住了SysRq键,这个时候输入的一切都会直接由Linux内核来处理,它可以进行许多低级操作。这个时候reisub中的每一个字母都是一个独立操作,他们分别表示:

unRaw将键盘控制从XServer那里抢回来

tErminate给所有进程发送SIGTERM信号,让他们自己解决善后

kIll给所有进程发送SIGKILL信号,强制他们马上关闭

Sync将所有数据同步至磁盘

Unmount将所有分区挂载为只读模式

reBoot重启

这6个字母的顺序是不可以记错的。那怎么记呢?这里提供一个个人认为比较好的方法:单词busier(busy的比较级,更忙)倒过来就是了。

————————————————很重要的分割线——————————————

要想启用SysRq,需要在配置内核时设置MagicSysRqkey(CONFIG_MAGIC_SYSRQ)为Y.对于支持SysRq的内核,/proc/sys/kernel/sysrq控制SysRq的启用与否.如果/proc/sys/kernel/sysrq内容为0,则SysRq被禁用;如果/proc/sys/kernel/sysrq内容为1,则SysRq被启用。

可通过运行命令echo"0">/proc/sys/kernel/sysrq和echo"1">/proc/sys/kernel/sysrq暂时启用或禁用SysRq.如果需要永久启用或者禁用SysRqs,则可在/etc/sysctl.conf中设置kernel.sysrq=1(启用SysRq)或kernel.sysrq=0(禁用SysRq)

关于Sysrq的详细信息,参考http://www.ibm.com/developerworks/cn/linux/l-cn-sysrq/

——————————————一定要注意的分割线————————————————

虽然说了这么多的sysrq的作用和命令,实际使用时首要的就是怎么启动这个键,我是直接无语了,联想笔记本折腾了半天就是不知道咋用,幸好遇到了这篇文章http://hi.baidu.com/aipie0066/blog/item/f4490a24a5f9233fd5074230.html

具体的就参见上面的文章吧,直接说我这笔记本怎么启用:fn+alt+PrtSc(sysrq)+……,省略号即相关的命令。一直没弄明白怎么启用的原因是没有加alt。

还有一种方法是ctl+alt+F1,进入tty1命令行界面,然后就像在命令行操作一样,可以输入reboot进行重启,不过输入命令并按下回车之后,需要等一会命令才会执行……这个方法在没死机时可用,不知道死机时是否也能行,没试过--!

相关推荐