fsck
(file system check)是一个命令行工具,它允许你在一个或者多个 Linux 文件系统进行连续监测和交互式修复操作。
在系统无法启动,或者分区无法被挂载的情况下,你可以使用fsck
命令去修复损坏的文件系统。
在这篇文章中,我们将会讨论fsck
命令.
fsck
fsck
命令通常像下面的形式:
fsck [OPTIONS] [FILESYSTEM]
仅仅 root 用户或者拥有 sudo 特权的用户可以清空缓存。
当FILESYSTEM
没有输入时,fsck
会检查fstab
文件中列出的设备。
永远不要在挂载的分区上运行fsck
,因为该命令可能会毁坏文件系统。在尝试检测或者修复文件系统时,请首先卸载该分区。
fsck
命令式一些列 linux 文件系统检测的封装,根据文件系统类型不同,它可以接受不同的选项。
对于指定的检测,请检查手册,获取更多信息。例如,为了查看fsck.ext4
的可用选项,输入:
man fsck.ext4
fsck
命令最简单的应用就是去修复一个非 root 的 ext3 或者 ext4 文件系统。
01.如果你不知道设备名称,使用fdisk
,df
或者其他工具去查询设备名称。
02.卸载设备:
sudo umount /dev/sdc1
03.运行 fsck
来修复文件系统:
sudo fsck -p /dev/sdc1
-p
选项告诉fsck
,可以不需要用户介入的情况下,安全自动修复任何问题。
04.一旦这个文件系统被修复,加载这个分区:
sudo mount /dev/sdc1
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.打开终端并运行:
sudo fsck -p /dev/sda1
04.一旦完成,重新启动,并进入你的实际系统。
在大部分 Linux 版本系统中,fsck
在以下情况下会在系统启动时自动检测文件系统: 1. 文件系统被标记为"dirty” 2.系统启动了一定的次数 3. 系统使用了一定的时间。
想查看当前加载次数,检测评率,检测周期,和某分区的最后一次检测时间,请使用工具tune2fs
:
sudo tune2fs -l /dev/sdc1 | grep -i 'last checked\|mount count'
Mount count: 292
Maximum mount count: -1
Last checked: Tue Jul 24 11:10:07 2018
Check interval: 0 (<none>)
在这个例子中,如果你想每启动 25 次,就运行一遍fsck
,请输入:
sudo tune2fs -c 25 /dev/sdc1
你也可以设置两次检测之间的最长时间。例如,每月检测一次:
sudo tune2fs -i 1m /dev/sdc1
在 SystemD 发行版上启动时,强制运行fsck
,请先传递下面的 kernel 启动参数:
fsck.mode=force
fsck.repair=yes
在老的发行版上,如果/forcefsck
文件存在时,fsck
将会在系统启动时强制运行。
fstab
选项fstab
是一个配置文件,它告诉系统如何加载,在哪里加载分区。
/etc/fstab
文件包含了一系列的条目:
# [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 行,表示哪个分区,在系统启动时进行检测。
Root 文件系统应该是1
,而其他所有的文件系统都应该是2
.
fsck
是一个用来检测,并修复 Linux 文件系统的命令行具。
想要了解更多关于fsck
命令的信息,请参考fsck 手册,或者在终端输入man fsck
查看 fsck 手册。