利用 SysRq 键排除和诊断系统故障
2011-02-26 10:24
281 查看
永久生效在/etc/sysctl.conf里增加: kernel.sysrq=1 # cat /proc/sys/kernel/sysrq 1 问在只有 shell,init、halt、shutdown 等命令都不工作的情况下如何重启系统。答案就是 SysRq,通过 SysRq – B 来完成系统的重启。 SysRq 键(与 PrintScreen在一个键上) (1)Alt-SysRq-R,然后Ctrl-Alt-Backspace,如果无效,则依次采用如下步骤 (2)Alt-SysRq-S 保存 (3)Alt-SysRq-E 终止所有进程 (4)Alt-SysRq-I 杀死尚未终止的进程 (5)Alt-SysRq-U umount (6)Alt-SysRq-B reboot,O 便是关机
早期的 SysRq 只支持键盘操作。要使用 SysRq,必须直接对主机进行键盘操作。要想执行 SysRq-B
来重启系统,只能通过直接键盘操作 Alt – SysRq – B 来完成(这里的 B 仅指 B 按键,不区分大小写)。
kernel
2.5.64 上的一个 patch 增加了 /proc/sysrq-trigger 接口,使得用户可能通过 /proc 接口来进行 SysRq
操作,换而言之,在现今大部分构建在 2.6 内核上的发行版,对主机键盘的物理接触已经不再是 SysRq
的必要条件。用户只需要登录到系统上,就可以直接使用 echo “ b ” > /proc/sysrq-trigger
来重启系统。在下文中,为描述的简洁,SysRq-<?> 均代表 Alt-SysRq-<?> 或者 echo “ ? ”
> /proc/sysrq-trigger 。
众所周知,系统挂起的很多时候 ssh 登录也未必响应,在缺乏对主机物理操作条件下,/proc/sysrq-trigger
也因为无法获取登录 shell 而无法操作。于是出现了一个名为 sysrqd 的开源项目,它允许通过网络来直接来触发 SysRq 。该程序只有
300 行左右代码,监听 TCP 端口 4094,通过自定义密码验证过后,即可对 /proc/sysrq-trigger
进行操作。但是由于此程序在用户空间实现,在系统挂起时该程序的可用性,以及其安全性均受到广泛质疑。其实如果这个服务做到内核空间,以类似响应 ARP
形式进行处理,再加上合理的认证方式,或许在大多数系统挂起的时候可以起到更加实际的作用。当然,在现代服务器的远程管理模块日趋先进的前提下,是否能通
过网络来触发 SysRq 好像并不是那么重要。
这个 SysRq 序列是 R-E-I-S-U-B 。要知道,该序列早在 SysRq 首次于 Linux 实现的 2.1.43 内核中就存在了。它基本等价于 reboot 命令, 会依次停止系统上运行的进程,回写磁盘缓冲区,再安全的重启系统。 所以,R-E-I-S-U-B 这个序列的推荐使用方式是:R – 1 秒 – E – 30 秒 – I – 10 秒 – S – 5 秒 – U – 5 秒 – B,而不是一气呵成地按下这六个键 busier倒过来看就行了。 SysRq 定义了一组与结束进程相关的序列:E-I-K-F,我们可以用它们来恢复系统挂起。
相关文章推荐
- 利用 SysRq 键排除和诊断系统故障
- 利用 SysRq 键排除和诊断系统故障
- 利用 SysRq 键排除和诊断系统故障
- 转向系统常见故障诊断与排除
- 关于“网络诊断工具—利用网络通讯分析系统诊断网络故障”抄袭一事申明 推荐
- 网络诊断工具—利用网络通讯分析系统诊断网络故障
- 利用网络通讯分析系统诊断网络故障
- Sysrq 诊断系统故障 与 gdb 调试core dump
- Sysrq 诊断系统故障 与 gdb 调试core dump
- 路由器网络诊断步骤和故障排除技巧
- 常见的系统故障及排除
- 转载------ 利用 Java dump 进行 JVM 故障诊断
- 服务器故障诊断及排除
- 系统启动及故障排除
- 利用 Java dump 进行 JVM 故障诊断
- 基于路由器网络诊断步骤和故障排除技巧
- 排除文件系统类故障之 修复文件系统
- 利用TTL进行网络故障诊断!
- centos系统启动故障的分类与排除
- 开机过程中发生死机故障的诊断与排除