我的一台 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
我知道这是一个非常古老的线程,但我最近不得不解决这个问题,所以我想发布如何强制操作系统修复启动期间 fsck 发现的问题(对于 12.04)。
您确实需要运行命令
sudo touch /forcefsck
。这将导致它在下次启动时执行 fsck。您可以在 /var/log/boot.log 中看到 fsck 的结果。但是,您不能保证 fsck 会修复它找到的任何东西。为此,您需要编辑文件 /etc/default/rcS。该文件末尾有一行:
这需要更改为以下内容:
这将与使用 -y 选项运行 fsck 具有相同的效果,这将强制执行所有可能的修复,并且不会要求用户交互。
这将允许您像 OP 要求的那样运行 fsck,而不必求助于从实时磁盘启动,这并不总是可能的,特别是如果您在远程系统上。
你有一个错字 - 你正在触摸 /forcefcsk。“c”和“s”互换。fsck 是 FileSystemCheck 的缩写。
从 e2fsck 手册页:
因此,如果您使用 fsck 检查已安装的 FS,即使使用 -n 选项,结果也可能根本无效。不要检查已安装的文件系统。使用 Live-CD/Live-USB。
如果您在挂载文件系统时不检查它,我不明白您为什么需要使用
touch /forcefsck
它,您可以卸载它并修复它。但如果是这种情况并且在修复后您的 FS 仍然有错误,那么您可以考虑使用:这将解决与硬盘驱动器相关的问题,称为您可能遇到的坏块(这将需要很长时间)。
如果您想检查已安装的文件系统,我不知道如何继续,但我认为您应该创建另一个问题。
由于分区正在使用中,您不能强制执行 fsck on / 来修复。尝试从不同的分区或 live cd 运行检查。
您可以通过以下方式自动完成修订:
-c
是运行前的最大挂载次数,是运行前fsck
的-i
最大天数fsck
。在这种情况下,将每 5 次安装或每 10 天执行一次,以先到者为准。
我有两台计算机,一台使用 Linux SuSE 13.2,另一台使用 Linux Mint 18.0,两者都运行良好。
touch /forcefsck
单独并不能确保我的系统fsck
在下次启动时运行。我还需要运行:例如
我在这里找到了更多解释:How to Force fsck to check filesystem after reboot