秘密武器:使用 SysRq 键安全重启挂起的 Linux
2013-10-04 20:45
471 查看
最近有台 NFS 服务器挂机,可以 ping 通,但不能 ssh 登陆,也不能通过本地终端登陆,只能重启了。我们一般处理文件服务器这种类型的重启都格外小心,不到迫不得已不会直接硬重启。Linux 运行过程中(为了提高性能)会把大量的数据暂时放在内存缓存中,而不是实时同步写入到磁盘,Linux 根据情况只有在需要(触发某条件)的时候才写入磁盘,所以这个时候挂机,数据还留在内存,没有办法及时写到磁盘,强制断电重启会造成数据不一致、部分数据丢失、文件系统损坏等。
为了在这样的情况下实现安全重启,我们可以利用 SysRq,当然有个条件是,系统虽然罢工停止了对大部分服务的响应,但仍然能处理键盘的中断请求。SysRq (System request) 常被称为 Magic SysRq key,在 Linux 下它被定义为一系列按键组合,之所以说它 magic,是因为它常能在系统挂起、多数服务都无法响应的时候做点事(预定义的操作),而且能在磁盘数据安全的情况下完成重启,除此之外还能捕获一些有用的系统运行信息。
首先确认当前使用的 Linux 内核支持 SysRq:
如果系统默认关闭了 kernel.sysrq 的话,需要打开。为了保证每次系统重启内核参数都生效,建议把配置写到 sysctl.conf 文件里:
SysRq 配置好后就可以开始用了。SysRq 安全重启的推荐按键组合是 Alt + SysRq + R-E-I-S-U-B,先按下 Alt 键和 SysRq 键,然后依次按下 R E I S U B 键(不区分大小写)。这个 R E I S U B 序列组合的意思是:
R – 把键盘设置为 ASCII 模式
E – 向除 init 外所有进程发送 SIGTERM 信号
I – 向除 init 外所有进程发送 SIGKILL 信号
S – 磁盘缓冲区同步
U – 重新挂载为只读模式
B – 重启系统
需要注意的是这些按键之间有顺序,而且按键之间有时间间隔(因为要等待前一个操作的完成),推荐的时间间隔是:
R – 1 秒 – E – 30 秒 – I – 10 秒 – S – 5 秒 – U – 5 秒 – B。
原文处,Terry 评论:
即使是 Magic Sysrq 对不 non-interruptible 的 system hang 也没办法。不过 Sysrq 在关键时刻能帮上大忙,避免数据不一致和丢失,甚至文件系统损坏。
一般是这么记的 => BUSIER 顺序倒过来,意味着接下去会越来越忙?
我们通常只在意数据是否安全的同步到了磁盘,所以我们一般只用 S-B 组合,按下 Alt + SysRq + S 后等待 Emergency Sync complete 提示,同步完成确认后用 Alt + SysRq + B 立刻重启。
为了在这样的情况下实现安全重启,我们可以利用 SysRq,当然有个条件是,系统虽然罢工停止了对大部分服务的响应,但仍然能处理键盘的中断请求。SysRq (System request) 常被称为 Magic SysRq key,在 Linux 下它被定义为一系列按键组合,之所以说它 magic,是因为它常能在系统挂起、多数服务都无法响应的时候做点事(预定义的操作),而且能在磁盘数据安全的情况下完成重启,除此之外还能捕获一些有用的系统运行信息。
首先确认当前使用的 Linux 内核支持 SysRq:
# grep "CONFIG_MAGIC_SYSRQ" /boot/config-`uname -r` CONFIG_MAGIC_SYSRQ=y
如果系统默认关闭了 kernel.sysrq 的话,需要打开。为了保证每次系统重启内核参数都生效,建议把配置写到 sysctl.conf 文件里:
# sysctl kernel.sysrq kernel.sysrq = 0 # sysctl -w kernel.sysrq=1 kernel.sysrq = 1 # vi /etc/sysctl.conf ... # Controls the System Request debugging functionality of the kernel kernel.sysrq = 1 ...
SysRq 配置好后就可以开始用了。SysRq 安全重启的推荐按键组合是 Alt + SysRq + R-E-I-S-U-B,先按下 Alt 键和 SysRq 键,然后依次按下 R E I S U B 键(不区分大小写)。这个 R E I S U B 序列组合的意思是:
R – 把键盘设置为 ASCII 模式
E – 向除 init 外所有进程发送 SIGTERM 信号
I – 向除 init 外所有进程发送 SIGKILL 信号
S – 磁盘缓冲区同步
U – 重新挂载为只读模式
B – 重启系统
需要注意的是这些按键之间有顺序,而且按键之间有时间间隔(因为要等待前一个操作的完成),推荐的时间间隔是:
R – 1 秒 – E – 30 秒 – I – 10 秒 – S – 5 秒 – U – 5 秒 – B。
原文处,Terry 评论:
即使是 Magic Sysrq 对不 non-interruptible 的 system hang 也没办法。不过 Sysrq 在关键时刻能帮上大忙,避免数据不一致和丢失,甚至文件系统损坏。
一般是这么记的 => BUSIER 顺序倒过来,意味着接下去会越来越忙?
我们通常只在意数据是否安全的同步到了磁盘,所以我们一般只用 S-B 组合,按下 Alt + SysRq + S 后等待 Emergency Sync complete 提示,同步完成确认后用 Alt + SysRq + B 立刻重启。
相关文章推荐
- 使用 SysRq 键安全重启挂起的 Linux
- 如何在Linux上开设使用ssl安全链接的站点
- linux 下安全地使用rm命令
- 未来执法者使用的5大秘密武器
- linux高级安全PAM使用
- Linux下使用OpenSSL创建安全的vsFTP
- 我使用过的Linux命令之sftp - 安全文件传输命令行
- [linux安全] nmap扫描器的使用
- linux安全-使用fail2ban来阻止扫描攻击
- linux安全之使用rsa证书进行登录
- Linux远程SSH方式使用证书安全登录(咋个办呢-zgbn)
- 信息安全系统设计基础实验一:Linux开发环境的配置和使用(20135234,20135229)
- Linux死机安全重启指令reisub
- 在Linux系统下,重启Tomcat使用命令操作
- 多学一点(七)——不重启Linux添加磁盘,使用软链接为挂载点扩容
- 在Linux系统下,重启Tomcat使用命令操作的!
- 使用java程序启动linux上的脚本,重启tomcat
- linux下重启weblogic(关闭和启动)nohup的使用
- 使用一次性密码本通过 SSH 安全登录 Linux
- Linux网络安全之“七种武器”