重启时强制fsck.ext4,但真的“有力”
我的一台Ubuntu 10.04服务器给我带来了麻烦。 当我运行fsck.ext4 -n /dev/sda5
它告诉我在免费inode计数,空闲块计数等方面存在错误。
我试过了:
touch /forcefsck
还尝试过:
shutdown -rF now
然而,重启后,我看到了错误。
我刚刚查看了我的eeePC上网本,Ubuntu 10.10,并且遇到了同样的问题!
我如何强制一个真正的“强制”“powershell”“严重修复我的文件系统”重启“/”文件系统的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
从e2fsck手册页:
“请注意,通常在挂载的文件系统上运行e2fsck是不安全的。唯一的例外是如果指定了-n选项,并且未指定-c,-l或-L选项。但是,即使它是安全的为此,如果安装了文件系统,e2fsck打印的结果无效。如果e2fsck询问您是否应该检查已安装的文件系统,唯一正确的答案是“不”。只有真正了解什么的专家他们正在考虑以任何其他方式回答这个问题。“
因此,如果使用-n选项检查已安装的FS和fsck,结果可能根本无效。 不要检查挂载的文件系统。 使用Live-CD / Live-USB。
如果在安装文件系统时没有检查文件系统,我不明白你为什么需要使用touch /forcefsck
你可以卸载并修复它。 但是如果是这种情况并且修复后你的FS仍有错误,那么你可以考虑使用:
e2fsck -cy /dev/sda5
这将修复一个与硬盘相关的问题,称为坏块(这可能需要很长时间)。
如果你想检查挂载的文件系统,我不知道如何继续,但我认为你应该创建另一个问题。
我知道这是一个非常古老的线程,但我最近不得不解决这个问题所以我想发布如何强制操作系统修复启动时fsck发现的问题(12.04)。
您需要运行命令sudo touch /forcefsck
。 这将导致它在下次启动时执行fsck。 您可以在/var/log/boot.log中看到fsck的结果。
但是,您不能保证fsck会修复它找到的任何内容。 为此,您需要编辑文件/ etc / default / rcS。 该文件末尾有一行:
FSCKFIX=no
这需要更改为以下内容:
FSCKFIX=yes
这与使用-y选项运行fsck具有相同的效果,这将强制执行所有可能的修复,并且不会要求用户交互。
这将允许您像OP要求的那样运行fsck,而不必诉诸从活动磁盘启动,这并不总是可能,尤其是如果您在远程系统上。
sudo touch /forcefsck sudo reboot
你有一个错字 – 你正在接触/ forcefcsk。 交换“c”和“s”。 fsck是FileSystemChecK的缩写。
由于分区正在使用,您无法强制执行/将要修复的fsck。 尝试从其他分区或live cd运行检查。
您可以通过以下方式自动完成修订:
Tune2fs -c 5 -i 10 / dev / sda1
-c
是运行fsck
之前的最大安装次数, -i
是运行fsck
之前的最大天数。
在这种情况下,将每5次安装或每10天完成一次,以先到者为准。
我有两台计算机,一台使用Linux SuSE 13.2,另一台使用Linux Mint 18.0,两者都运行良好。
单独touch /forcefsck
并不能确保我的系统在下次启动时运行fsck
。 我还需要运行:
sudo tune2fs -c 1 /dev/
例如
sudo tune2fs -c 1 /dev/sda1
我发现的更多解释如下: 如何强制fsck在重启后检查文件系统