在重启期间使用 fsck 强制检查根文件系统

举报
Tiamo_T 发表于 2022/10/13 09:48:40 2022/10/13
【摘要】 在非根文件系统上执行 fsck 相当简单。但是,对于根文件系统,您不能在挂载时执行 fsck。 本快速教程解释了如何强制对根文件系统进行文件系统检查。

在非根文件系统上执行 fsck 相当简单。但是,对于根文件系统,您不能在挂载时执行 fsck。

本快速教程解释了如何强制对根文件系统进行文件系统检查。

根文件系统

在此示例中,/dev/sda1 分区是安装为 / 的根文件系统

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              63G   41G   19G  69% /

如果您运行 fsck 来检查您的根文件系统,您将收到以下错误消息,因为 /dev/sda1 已安装,并且您无法在已安装的文件系统上执行 fsck。

# fsck /dev/sda1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sda1 is mounted.
e2fsck: Cannot continue, aborting.

如果您在非根文件系统上执行 fsck,则只需卸载该分区并执行 fsck。

但在这种情况下,我们喜欢在根文件系统上执行 fsck。那么,解决方案是什么?

另外,如果您是 fsck 的新手,请参阅:10 个 Linux Fsck 命令示例来检查和修复文件系统

重启前 Tune2fs 输出

在我们重新启动系统之前,让我们检查一下 fsck 上次对根文件系统进行检查是什么时候。

为此,请使用 tune2fs 命令,并使用 grep 进行“检查”,如下所示。

# tune2fs -l /dev/sda1 | grep -i check
Last checked:             Mon Nov 24 12:39:44 2015
Check interval:           15552000 (6 months)
Next check after:         Sun May 22 13:39:44 2016

正如我们从上面的输出中看到的:

  • 上次检查:表示最后一次发生根文件系统检查。这发生在十一月。
  • 检查内部:指示检查根文件系统的频率。在此示例中,在重新启动期间在此文件系统上执行 fsck 之前,它将再等待 6 个月。
  • Next check after: 表示在您执行重新启动后,将检查文件系统的日期和时间。这只会在五月之后发生。

但是,就我们而言,我们不想等到五月。我们现在要执行根文件系统 fsck 检查。

创建 /forcefsck 文件以强制检查根文件系统

因此,要强制检查根文件系统,一种简单的方法是重新启动系统,并在系统启动时强制 fsck 在内核挂载根文件系统之前执行文件系统。

要在重启期间强制 fsck,首先在 / 下创建一个名为 forcefsck 的空文件,如下所示。

# cd /

# touch forcefsck


# ls -l /forcefsck 
-rw-r--r--. 1 root root 0 Mar  9 20:15 /forcefsck

现在重新启动系统:

# reboot

重启后 Tune2fs 输出

如果您有控制台访问权限,您可以看到 fsck 将在重新启动期间对 / 文件系统执行检查。

检查后,fsck 会自动删除我们之前创建的 /forcefsck 文件。重新启动后,您将不再看到此文件。

#  ls -l /forcefsck 
ls: cannot access /forcefsck: No such file or directory

现在,如果您执行 tune2fs,您将看到“上次检查”字段已更新为当前时间戳。这确认 fsck 在重新引导期间执行了根文件系统检查。

# tune2fs -l /dev/sda1 | grep -i check
Last checked:             Wed Mar 09 20:30:04 2016
Check interval:           15552000 (6 months)
Next check after:         Mon Sep 05 21:30:04 2016

您还会看到“Next check after”的值相应地发生了变化。即我们重新启动系统后的 6 个月。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。