如何使用 fsck?从未使用过,但必须检查文件系统

如何使用 fsck?从未使用过,但必须检查文件系统

我的服务器多次因rcu_sched self-detected stall on CPU错误而崩溃。现在重启后无法修复 MySQL 表,有些服务可以启动,有些则无法启动。

我必须发出什么命令来检查和修复文件系统?我从未使用过 fsck。我应该以救援模式重新启动服务器吗?或者这并不重要?

Filesystem      1K-blocks     Used  Available Use% Mounted on
rootfs           20026172  8145824   10840020  43% /
/dev/root        20026172  8145824   10840020  43% /
devtmpfs         16419704        0   16419704   0% /dev
tmpfs             3284032      268    3283764   1% /run
tmpfs                5120        0       5120   0% /run/lock
tmpfs             6777360        0    6777360   0% /dev/shm
/dev/md3       1902052420 19534092 1785876644   2% /home
/dev/loop0        3997376     8192    3763088   1% /tmp

答案1

shutdown具有 -F 表示在重启时强制 fsck。

# shutdown -rF now

它将创建文件 /forcefsck 并重新启动。

您也可以通过手动创建文件 /forcefsck 在下次重启时强制执行 fsck。

# touch /forcefsck
# reboot

如果文件系统中的错误阻止您使用关机命令,这将很有用。

答案2

让 RCU 调度程序发出警告/信息不会导致重启。仔细检查您的日志文件,看看这些消息是 WARN/INFO 还是 ERR/PANIC。根据此处的文档: https://www.kernel.org/doc/Documentation/RCU/stallwarn.txt

这些应该是信息消息。

如果您因为这些消息而手动重新启动机器,则可以停止。

如果您因为其他原因而重新启动,则应该在问题中记录下来。

如果系统因为内核问题而崩溃、停止/锁定,那么也应该在问题中记录下来。

服务无法启动的问题很可能与 RCU 调度程序无关。它也可能与文件系统无关——正如 Esa Jokinen 提到的,在下次重新启动时强制进行一致性检查。但是我怀疑您仍然会看到服务无法启动的问题——检查这些特定服务的错误日志以确定它们无法启动的原因。

相关内容