首页 > 代码库 > 硬盘故障时无法时无法关机,内核直接重启

硬盘故障时无法时无法关机,内核直接重启

硬盘故障时无法时无法关机,内核直接重启

如果硬盘可能会出现锁死或坏道的故障,会造成SHELL命令的失效,包括reboot,powoff, shutdown, 用正常的命令是没法完成重启的
现象如下
# reboot
bash: /sbin/reboot: Input/output error
# shurdown -r now
bash: /sbin/shutdown: Input/output error
很明显,因为硬盘的故障,内核无法从磁盘上读取二进制程序 /sbin/reboot 和 /sbin/shutdown 来执行,所以命令失败。
下次启动时系统自动 fsck 可能会更正磁盘错误,但首先需要使系统重启,拉掉电源这个办法可能会造成硬盘的伤害。
可以让内核直接重启,不需要读取(已经锁死或坏掉的)硬盘,如下,
1.执行:
echo 1 > /proc/sys/kernel/sysrq
"magic SysRq key"提供了一个通过/proc来直接给内核发送命令的方法。要启用该特性,只需在内核编译的时候启用"CONFIG_MAGIC_SYSRQ"这个选项,而一般发行版的标准内核都已经启用了。激活这个选项
2.需要重启的时候,只需要执行
echo b > /proc/sysrq-trigger
设备马上重启。