强制重启 Linux

由 TH779 发布

几天前,我的 Linux 因滚动升级出问题导致内核出 bug,无论使用 reboot 还是 init 6 都无法解决问题,输入重启命令后控制台卡住,并且 dmesg 里显示偏移错误,在浏览大量相关页面后终于找到了解决方案。

Magic SysRq key 方法

Magic SysRq key 是一串能直接与 Linux 内核沟通的组合键,允许用户就算在系统进入死循环濒临崩溃时,直接调用系统底层将数据写入文件系统或重启,避免尚未写入文件系统与硬盘的数据在关机后消失。效果类似于计算机上的电源键或重启键,但能运行更多操作。

重启:

echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

关机:

echo 1 > /proc/sys/kernel/sysrq
echo o > /proc/sysrq-trigger

Watchdog 方法

Watchdog 是 Linux 系统一个很重要的机制,其目的是监测系统运行的情况,一旦出现锁死,死机的情况,能及时重启机器(取决于设置策略),并收集 Crash Dump。如果 Linux kernel 未开启 Magic SysRq key 或者不起作用,可以尝试使用 Watchdog 重启方法。

  1. 加载 Watchdog 模块:

    modprobe softdog
  2. 加载模块完毕后输入以下命令:

    cat /dev/watchdog
  3. 接下来会报错并且退出,同时日志会显示:

    softdog: Unexpected close, not stopping watchdog!
  4. 等待六十秒系统自动重启即可。

本文参考


暂无评论

发表评论