当 rootfs 不可用时重新启动 Linux

当 rootfs 不可用时重新启动 Linux

如何让基于 Linux 的设备在 rootfs 不可用时重新启动?

只有软件看门狗可用。

问题是 rootfs 是从NFS.当我停止 NFS 服务器时,设备被阻止。我希望它重新启动。我怎样才能实现这个目标?

即: rootfs 有问题,内核级别是否有任何东西可以重置整个系统?我不关心打开/损坏的文件和资源。

注意:我没有该架构的内核源代码。该设备是无头设备,没有连接显示器或键盘。有一个根控制台agetty(在 中定义/etc/inittab)。

答案1

您没有说明您是否连接了物理键盘,但如果有,那么“神奇的 SysRq 键”可能有帮助。在你的情况下

  • Alt+ SysRq+S用于紧急同步到磁盘,以及
  • Alt+ SysRq+B立即重启

应该做这项工作。请注意,要使其工作,必须不停用这些组合键,请参阅/proc/sys/kernel/sysrq其中允许的 SysRq-Actions 的 ORed 位掩码的设置(复制自这里):

  2 =   0x2 - enable control of console logging level
  4 =   0x4 - enable control of keyboard (SAK, unraw)
  8 =   0x8 - enable debugging dumps of processes etc.
 16 =  0x10 - enable sync command
 32 =  0x20 - enable remount read-only
 64 =  0x40 - enable signalling of processes (term, kill, oom-kill)
128 =  0x80 - allow reboot/poweroff
256 = 0x100 - allow nicing of all RT tasks

您还可以通过写入以下内容从 shell 脚本/程序触发此操作/proc/sysrq-trigger

echo "b" > /proc/sysrq-trigger

无论设置是什么,这都将起作用/proc/sys/kernel/sysrq,这仅限制键盘引发的 SysRq 事件。

答案2

听起来您需要onerror=panicNFS 根文件系统的挂载选项,但我不确定它是否适用于 NFS。您可能还需要使用特定于 NFS 的挂载选项来挂载 NFS 根文件系统,soft这样它就会超时并返回错误,而不是永远重试。

笔记:安装soft选项可能会导致文件损坏和/或数据丢失,但在评论中您明确表示您不关心这一点。

也许值得一试?

相关内容