即使文件系统强制检查失败,如何允许SSHlogin

介绍

在生产环境中,我遇到了几台服务器(CentOS 6.4)的问题,问题是服务器不时崩溃,我们需要重新启动这些服务器,以便能够再次使用它们。

问题

问题是,有时在重新启动后服务器执行强制检查的文件系统,当它失败有人需要身体去服务器和手动执行FSCK。

这个问题

当这种强制检查无法通过SSH访问服务器时,有没有一种方法可以真正启动系统? 还是有另一种解决scheme,既有定期检查文件系统和SSH访问服务器。

提前致谢!

首先,使用一些不依赖操作系统的远程控制台连接。 对于戴尔,它是iDRAC,惠普是iLO,IBM是RSA2等。这是标准做法,因为除了fsck之外,还可能有其他许多启动错误。

其次,看到自动fsck的问题 。 但是,如果你正在做这个“自动化”,确保你已经testing了你的备份。 有了这个,你的fsck会通过,你可以通过SSH连接。

我会专心找出最初的问题的原因。 无论是文件系统损坏还是机器无响应的另一个症状,或者您正在执行不安全的重新引导(电源循环)或上述两者。

你没有说你的文件系统是如何安排的,哪一个正在变坏。 如果你有一个非常小的根文件系统,几乎所有其他东西都是单独的坐骑( /sbin/etc ,还有其他一些东西需要一直保留在根fs上), fsck正在拾取的东西在非根文件系统上那么如果你熟悉shell脚本,你可以调整启动过程

  • 只有问题/导致它阻止
  • 在检查和准备好之后,ssh会尽快提出
  • 其他文件系统以只读方式挂载(如果发现问题,您可能会收到邮件提醒,而其他面向公众的服务未启动)

这样,你可以ssh来修复其他文件系统,并启动一个干净的重新启动,把东西放回原处。

有一些选项可以设置fsck来自动尝试修复问题(如果是由不安全的重启引起的,通常情况下并不严重,尤其是对于日志文件系统),但是这通常不被推荐用于生产环境,因为它可以隐藏日益严重的问题。 在/etc/default/rcS ,在Debian / Ubuntu /类似的FSCKFIX选项/etc/default/rcS/var/log/fsck/checkfslogging结果,如果/var在成功安装的文件系统上是可读的,在CentOS也是如此。

如果你真的想坐在你的裤子的位置上,把pasnum设置为/etc/fsck (最后一列)中的所有内容都设为0,没有任何东西会被检查。 这当然是非常不推荐…如果你真的走这个方法,我build议你设置最小的服务启动时自动启动,SSH在重新启动后立即运行fsck一切,而挂载只读,重新安装一切读取+写入模式,然后启动您的服务(这样您可以访问机器,但是只有在确定机器上的文件系统干净后,才能启动面向服务的用户)。

但是,真正find根本原因应该是您的首选,IMO和远程KVM选项比在可能损坏的文件系统中启动到操作系统的风险更好。

至less在Debian上 ,可以将dropbear SSH服务器安装到INITRD中。 在Centos上应该可以做到这一点,但是我没有具体的说明,但我可以指出。

在任何情况下,您最好都要进行某种带外pipe理设置。