如果根文件系统不起作用,是否可以通过SSH重新启动Linux机器?


15

出于好奇;Linux机器出了点问题,使根文件系统显示为“ 64Z”。一些命令(例如top,,df和)可以工作kill,但是其他一些命令却reboot带有“找不到命令”(因为它无法读取根文件系统),并且chmod出现了分段错误。

有没有办法重启系统,即没有reboot程序?我尝试了kill -PWR 1(将SIGPWR发送到init),但这似乎没有任何作用。

这主要是出于学术上的好奇心。正在进行任何大型数据库工作而导致故障的实验室成员将很快以物理方式重新启动计算机。



您是否看到根fs的问题引发了内核恐慌?
Hanan N.

Answers:


25

尝试使用魔术sysrq密钥重新启动:

echo b > /proc/sysrq-trigger

有关更多信息,请阅读Wiki内核文档


1
谢谢!这确实重启了系统。(不幸的是,根文件系统发生的任何事情似乎都无法恢复……可悲)。
gatoatigrado 2011年

5

RAC(远程访问卡)或iLO(集成的熄灯)或MP(管理处理器)将为您提供重置服务器的方法。

例如,如果您的Dell PowerEdge带有RAC卡(称为DRAC),则可以通过ssh重新启动服务器:

ssh drac "racadm serveraction powercycle"

另一个选择是将Web-GUI用于RAC / iLO,然后在此处进行相同的操作。

这些东西也有一个开放的标准:IPMI。


3

比@Rush答案更有趣的是,即使系统根本不响应键盘,也可以重新启动(以及更多)系统。但是它必须响应ping(ICMP)数据包。

有关如何实现功能的完整文档和说明,请参见此处


4
实际给出简要的原则说明/摘要而不是仅仅链接?
kizzx2 2011年

您需要为该方法做一些设置,但绝对是一个好主意。
gatoatigrado 2011年

这听起来很有趣-但是涉及的安全风险不是很大吗?允许通过单个ICMP数据包重新启动服务器,似乎正在等待拒绝服务攻击。
bgvaughan

@bgvaughan:您是对的,在我上面提供的链接中,它有其优点和缺点,其中之一是安全性,尽管您可以限制谁可以这样做。
Hanan N.


1

这需要事先进行设置,但是如果您习惯于使计算机崩溃(例如,因为您正在对其进行低级开发),则可能需要设置一个看门狗,即一个内核或用户任务,它会在运行时自动重新启动它变得反应迟钝。如果您的主板上有Linux,Linux可以使用硬件看门狗,否则,可以使用软件看门狗。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.