日期:2014-05-16  浏览次数:20655 次

Linux下的安全硬重启
        我的笔记本没有硬重启键,由于笔记本的驱动没有linux版的,所以在linux偶尔死机之后只能强制关机,再开机。无意间读到网上一篇文章,是关于linux系统下的硬重启的,这个方法对于一般的硬重启的优点是可以保存当前状态,不至于信息丢失。摘录如下,但已不知原出处,在此对原作者表示感谢。
        Linux 也会死机吗? 会,当然会. 如果死机了,怎么办?直接按电源键重启? 这太危险了.一不小心,机器就挂了. 但是系统已经无响应了,键盘与鼠标都不能动,不按电源键重启怎么办? 好办,办法还是有的.
        此种情况,要以这样操作:
        叫做 reisub,这个方法可以在各种情况下安全地重启计算机。大家在键盘上找,可以找到一个叫做“Sys Rq”的键,在台机的键盘上通常与 Prt Sc 共键,在笔记本可能在其他位置,如 Delete。以台机为例,要使用这种方法需要按住 Alt-Print(Sys Rq),然后依次按下 reisub 这几个键,按完 b 系统就会重启。
        下面解释一下这个方法:其实 Sys Rq 是一种叫做系统请求的东西,按住 Alt-Print 的时候就相当于按住了 Sys Rq 键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。这个时候 reisub 中的每一个字母都是一个独立操作,他们分别表示:

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

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

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

        Sync     将所有数据同步至磁盘

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

        reBoot     重启

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

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

        要想启用SysRq, 需要在配置内核时设置Magic SysRq key (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进行重启,不过输入命令并按下回车之后,需要等一会命令才会执行……这个方法在没死机时可用,不知道死机时是否也能行,没试过- -!