在重新引导时强制fsck.ext4,但确实“有力”


21

我的Ubuntu 10.04服务器之一给我带来了麻烦。当我运行时,fsck.ext4 -n /dev/sda5它告诉我空闲inode计数,空闲块数等存在错误。

我试过了:

touch /forcefsck

还尝试了:

shutdown -rF now

而且,重新启动后,我仍然看到错误。

我也刚刚检查了我的eeePC上网本,Ubuntu 10.10,并遇到了同样的问题!

如何在重新启动时强制“ /”文件系统的真正“强制”“强制”“严重修复我的文件系统” fsck?

澄清:我运行fsck.ext4 -n是因为它是一个已装载的文件系统,所以要检查是否有错误。这告诉我有。我认为在启动过程中每30次安装一次自动fsck 正是为了解决根文件系统中的错误。但这对我而言并没有。我可以使用LiveCD重新启动并修复错误,然后再次重新启动,但这对于实时服务器来说是一个严重的停机时间。重新启动,自动fsck,然后继续启动在实时服务器上更可持续,我相信应该是正确的行为。

附加信息:这是输出。看起来autofsck可以解决问题,不是吗?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

您正在使用什么Ubuntu服务器版本?
crncosta

10.04。我将编辑我的问题。
UrkoM 2010年

我认为您实际上无法做到这一点,实际上,最好手动进行检查。
RolandiXor

1
抱歉,我仍然需要更多信息。您是否在已挂载的文件系统上执行fsck?您可以从LiveCD引导并再次检查(卸载/ dev / sda5)吗?
crncosta

不是文件系统而是硬盘坏了吗?在这种情况下,可以预期ext4不会像在少数坏扇区那样修复错误。
Stefano Palazzo

Answers:


10

从e2fsck手册页:

“请注意,通常在已挂载的文件系统上运行e2fsck是不安全的。唯一的例外是如果指定了-n选项,而未指定-c,-l或-L选项。但是,即使这样做是安全的这样做,如果已挂载文件系统,则e2fsck打印的结果无效。如果e2fsck询问是否应检查已挂载的文件系统,则唯一正确的答案是“否”。只有真正知道什么的专家他们正在做的事情应该考虑以任何其他方式回答这个问题。”

因此,即使使用-n选项,即使使用fsck检查已安装的FS,结果也可能完全无效。不要检查已挂载的文件系统。使用Live-CD / Live-USB。

如果您在挂载文件系统时不检查文件系统,那么我不明白为什么需要使用该文件系统,touch /forcefsck只需将其卸载并修复即可。但是,如果是这种情况,并且在修复之后,您的FS仍然存在错误,则可以考虑使用:

e2fsck -cy /dev/sda5

这将解决与硬盘驱动器相关的问题,称为坏块(这将花费很长时间)。

如果要检查已挂载的文件系统,我不知道如何进行,但我认为您应该创建另一个问题。


您是正确的,文件系统已安装。当然,我需要在卸载时执行fsck。但是我运行fsck -n进行挂载检查,没有进行任何更改,它告诉我有错误。并且不应该在重新启动时修复fsck吗???
UrkoM 2010年

我刚刚注意到您在第一句话中说的话:为什么fsck -n在已挂载的文件系统上无效?如何以可靠的方式检查已挂载的文件系统是否有错误?
UrkoM 2010年

您可以检查e2fsck手册页上的内容:“请注意,通常在已挂载的文件系统上运行e2fsck是不安全的。唯一的例外是如果指定了-n选项,并且指定了-c,-l或-L选项未指定。但是,即使这样做是安全的,如果挂载了文件系统,e2fsck打印的结果也无效。如果e2fsck询问您是否应该检查已挂载的文件系统,唯一的正确答案是''不。”只有真正知道自己在做什么的专家才应考虑以任何其他方式回答这个问题。”
Nyamiou The Galeanthrope,2010年

我不知道如何检查已挂载的文件系统,也许您应该创建另一个问题。
Nyamiou The Galeanthrope,2010年

您可以在回答中添加最后两个评论吗?那我接受 我不知道,所以这就是为什么...我认为这是因为fsck -n不处理日志,因此文件系统状态不一致,而无需查看那里的最新更改。
UrkoM 2010年

24

我知道这是一个非常老的线程,但是最近我不得不解决此问题,因此我想发布如何强制操作系统修复在启动过程中针对fsck的问题(适用于12.04)。

您确实需要运行命令sudo touch /forcefsck。这将导致它在下次启动时执行fsck。您可以在/var/log/boot.log中查看fsck的结果。

但是,不能保证fsck会修复发现的任何问题。为此,您需要编辑文件/ etc / default / rcS。该文件的末尾有一行:

FSCKFIX=no

这需要更改为以下内容:

FSCKFIX=yes

这与使用-y选项运行fsck具有相同的效果,它将强制实施所有可能的修复程序,并且不会要求用户进行交互。

这样一来,您就可以像OP要求的那样运行fsck,而不必求助于从活动磁盘引导,这并不总是可能的,尤其是在远程系统上时。


1
在我的Ubuntu EC2实例上编辑该条目以及sudo touch /forcefscksudo shutdown -r命令可以成功解决文件系统问题和登录时的检查警告。轻松且无干扰-欢呼。
c.gutierrez 2015年

在Server Fault上也提出了相同的问题,这个答案也是在Ubuntu 14.04系统上对我有用的问题。只是这样做sudo touch /forcefsck,然后重新启动并没有;编辑rcS是必要的。
Teemu Leisti 2015年

12
sudo touch /forcefsck
sudo reboot

您输入错误-您正在触摸/ forcefcsk。“ c”和“ s”被交换。fsck是FileSystemChecK的缩写。


这对我不起作用,因为由于我要修复的错误,根文件系统以只读方式挂载fsck!只能通过liveCD或将驱动器拉入另一台机器才能解决的鸡肉和鸡蛋问题。
HDave 2012年

3

您无法在将要修复的/上强加fsck,因为该分区正在使用中。尝试从其他分区或实时CD运行检查。


2
的确如此,但是引导自动fsck应该在使用分区之前发生,正是为了能够修复“ /”上的错误。否则,有什么意义呢?
UrkoM 2010年

3
我相信该检查是在使用前进行的,但是,它更像是咨询检查。由您决定如何解决错误。当查看/ etc / fstab时,很容易检查。“ /”得到的检查与其他分区不同。
charlie-tca

它确实发生在根旋转之前吗?即。初始Ram磁盘。
mckenzm

1

您可以通过以下方式自动完成修订:

Tune2fs -c 5 -i 10 / dev / sda1

-c是在运行时坐骑的最大数量fsck,并-i为运行前几天的最大数量fsck

在这种情况下,每5次安装或每10天执行一次,以先到者为准。

我有两台计算机,一台使用Linux SuSE 13.2,另一台使用Linux Mint 18.0,两者均能完美运行。


自动形式的形式和注释如下:Tune2fs -c 5 -i 10 / dev / sda1其中:-c是运行fsck之前的最大安装数其中:-i是运行fsck之前的最大天数在这种情况下,每5次安装或每10天执行一次,以先到者为准。我有两台计算机,一台装有Linux SuSE 13.2,另一台装有Linux MInt 18.0,两台计算机都能正常工作。
hk3jld

自动形式的形式和注释如下:Tune2fs -c 5 -i 10 / dev / sda1其中:-c是运行fsck之前的最大安装数其中:-i是运行fsck之前的最大天数在这种情况下,每5次安装或每10天执行一次,以先到者为准。我有两台计算机,一台装有Linux SuSE 13.2,另一台装有Linux MInt 18.0,两台计算机都能正常工作。我不懂英语,但我使用翻译,希望培训效果很好
hk3jld

1
它也可以在Ubuntu上工作吗?
乔治·乌德森

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.