首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux下的 Fsck 命令

fsck(file system check)是一个命令行工具,它允许你在一个或者多个 Linux 文件系统进行连续监测和交互式修复操作。

在系统无法启动,或者分区无法被挂载的情况下,你可以使用fsck命令去修复损坏的文件系统。

在这篇文章中,我们将会讨论fsck命令.

如何使用fsck

fsck命令通常像下面的形式:

代码语言:javascript
复制
fsck [OPTIONS] [FILESYSTEM]

仅仅 root 用户或者拥有 sudo 特权的用户可以清空缓存。

FILESYSTEM没有输入时,fsck会检查fstab文件中列出的设备。

永远不要在挂载的分区上运行fsck,因为该命令可能会毁坏文件系统。在尝试检测或者修复文件系统时,请首先卸载该分区。

fsck命令式一些列 linux 文件系统检测的封装,根据文件系统类型不同,它可以接受不同的选项。

对于指定的检测,请检查手册,获取更多信息。例如,为了查看fsck.ext4的可用选项,输入:

代码语言:javascript
复制
man fsck.ext4

修复损坏的文件系统

fsck命令最简单的应用就是去修复一个非 root 的 ext3 或者 ext4 文件系统。

01.如果你不知道设备名称,使用fdiskdf或者其他工具去查询设备名称。

02.卸载设备:

代码语言:javascript
复制
sudo umount /dev/sdc1

03.运行 fsck 来修复文件系统:

代码语言:javascript
复制
sudo fsck -p /dev/sdc1

-p选项告诉fsck,可以不需要用户介入的情况下,安全自动修复任何问题。

04.一旦这个文件系统被修复,加载这个分区:

代码语言:javascript
复制
sudo mount /dev/sdc1

修复 Root 文件系统

fsck无法在运行的机器上,检测 root 文件系统,因为它目前无法被卸载。

如果你希望修复 root 文件系统,你有几个选择。你可以在系统启动时,启动启动进入恢复模式时,或者使用 live CD 的时候,去运行fsck来修复 root 文件系统。

在恢复模式使用fsck

01.进入 boot 菜单,并且选择高级选项

02.选择恢复模式,然后"fsck”

03.当提示重新加载 root 文件系统时,选择”YES“

04.一旦完成,继续启动

在 Live CD 版本中使用fsck: 01.启动 Live CD 系统

02.使用fdisk或者parted找出根分区名称

03.打开终端并运行:

代码语言:javascript
复制
sudo fsck -p /dev/sda1

04.一旦完成,重新启动,并进入你的实际系统。

在启动时检测文件系统

在大部分 Linux 版本系统中,fsck在以下情况下会在系统启动时自动检测文件系统: 1. 文件系统被标记为"dirty” 2.系统启动了一定的次数 3. 系统使用了一定的时间。

想查看当前加载次数,检测评率,检测周期,和某分区的最后一次检测时间,请使用工具tune2fs

代码语言:javascript
复制
sudo tune2fs -l /dev/sdc1 | grep -i 'last checked\|mount count'
代码语言:javascript
复制
Mount count:              292
Maximum mount count:      -1
Last checked:             Tue Jul 24 11:10:07 2018
Check interval:           0 (<none>)
  • “Maximum mount count” 指经过多少次启动后,将会检测文件系统。这个值为”-1”,表示永远不通过这个判断是否要进行检查。
  • “Check interval” 指两次系统检测之间的最大周期时间。

在这个例子中,如果你想每启动 25 次,就运行一遍fsck,请输入:

代码语言:javascript
复制
sudo tune2fs -c 25 /dev/sdc1

你也可以设置两次检测之间的最长时间。例如,每月检测一次:

代码语言:javascript
复制
sudo tune2fs -i 1m /dev/sdc1

在 SystemD 发行版上启动时,强制运行fsck,请先传递下面的 kernel 启动参数:

代码语言:javascript
复制
fsck.mode=force
fsck.repair=yes

在老的发行版上,如果/forcefsck文件存在时,fsck将会在系统启动时强制运行。

fstab 选项

fstab是一个配置文件,它告诉系统如何加载,在哪里加载分区。

/etc/fstab文件包含了一系列的条目:

代码语言:javascript
复制
# [File System] [Mount Point] [File System Type] [Options] [Dump] [PASS]
/dev/sda1       /             ext4               defaults  0      1
/dev/sda2       /home         ext4               defaults  0      2
server:/dir     /media/nfs    nfs                defaults  0      0

最后一行,也就是第 6 行,表示哪个分区,在系统启动时进行检测。

  • 0 - 不检测
  • 1 - 这个文件系统首先被检测,并且每次只检测一次。
  • 2 - 其他文件系统可以被延迟检测,或者并行检测。

Root 文件系统应该是1,而其他所有的文件系统都应该是2.

总结

fsck是一个用来检测,并修复 Linux 文件系统的命令行具。

想要了解更多关于fsck命令的信息,请参考fsck 手册,或者在终端输入man fsck查看 fsck 手册。

下一篇
举报
领券