Linux fsck命令修复文件系统

fsck全称文件系统检查,fask是一个命令行程序,可让您执行一致性检查和交互式修复

5 min read
By myfreax
Linux fsck命令修复文件系统
Linux fsck命令修复文件系统

fsck全称文件系统检查,fask是一个命令行程序,可让您在一个或多个Linux文件系统执行一致性检查和交互式修复。它用于检查指定类型文件系统。

在系统无法启动或无法安装分区的情况下,可以使用fsck命令修复损坏的文件系统。

在本教程中,我们将讨论fsck命令修复文件系统。fsck命令的语法形式是fsck [OPTIONS] [FILESYSTEM]。只有root用户或具有sudo权限的用户才能运行fsck命令。

如果未指定文件系统参数FILESYSTEMfsck将会检查/etc/fstab文件中列出的设备。

请不要在已挂载的分区运行fsck命令,因为它可能会损坏文件系统。在尝试检查或修复文件系统之前,请始终先运行unmount命令卸载已挂载分区,再进行检查。

fsck命令是fsck.*命令的封装,并根据文件系统的类型接受不同的选项。

你可以查看手册页以获取指定检查器的更多信息。例如要查看fsck.ext4可用的选项,请运行命令man fsck.ext4

man fsck.ext4

修复损坏的文件系统

fsck命令最简单的用例是修复损坏的ext3或ext4文件系统。如果您不知道设备名称,请使用fdiskdf命令查找损坏的文件系统所在分区的设备名称。

在修复文件系统之前按请先运行umount命令卸载设备,然后在运行fsck修复文件系统。

例如命令sudo fsck -p /dev/sdc1将会修复设备/dev/sdc1分区。-p选项指示fsck在不需要用户干预的情况安全修复任何问题,也就是自动修磁盘。

当fsck命令修复文件系统完成后,请运行命令sudo mount /dev/sdc1挂载分区。

sudo umount /dev/sdc1
sudo fsck -p /dev/sdc1
sudo mount /dev/sdc1

修复根文件系统

fsck无法检查正在运行的计算机的根文件系统,因为无法将根文件系统卸载。

如果您要检查或修复根文件系统,则可以有几种选择。您可以将fsck设置为在引导时运行,进入恢复模式或使用U盘启动Linux系统。

进入恢复模式运行fsck。进入grub启动菜单,然后选择高级选项。选择恢复模式,然后选择fsck

当系统提示重新挂载根文件系统时,选择。完成后,恢复正常启动。

如果你需要通过CD启动运行fsck。请运行命令fdiskparted查找根分区名称。然后运行命令sudo fsck -p /dev/sda1修复文件系统。完成后,重新启动系统。

sudo fsck -p /dev/sda1

启动时检查文件系统

在大多数Linux发行版中,如果文件系统被标记为脏文件,则在启动时运行fsck命令。

tune2fs命令允许你设置或者查看文件系统是否需要执行修复的时间,频率和间隔。

要查看当前文件系统挂载次数,频率,间隔以及分区的最后检查时间,请运行tune2fs命令。

Maximum mount count是文件系统的挂载次数。 0-1的值表示fsck将永远不会运行。Check interval是两次文件系统检查之间的时间间隔。

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

sudo tune2fs -c 25 /dev/sdc1
sudo tune2fs -i 1m /dev/sdc1

要强制fsck在使用SystemD的Linux发行版启动时运行,请传递以下内核启动参数。在较早的发行版中,如果存在/forcefsck文件,fsck将在启动时运行。

fsck.mode=force
fsck.repair=yes
sudo touch /forcefsck

fstab​​选项

fstab是一个配置文件,它告诉系统如何以挂载分区。/etc/fstab文件包含以下格式的条目列表。

最后的第六列[PASS]是用于控制在重新引导时完成文件系统检查的顺序的选项。0不检查。

1首先要检查的文件系统,要检查一次。2这些文件系统将在所有其他文件系统以后进行检查,并可能会进行并行检查。

根文件系统的值应为1,要检查的其他文件系统的值应为2

# [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
/etc/fstab

结论

fsck是用于检查和修复Linux文件系统的命令行工具。要了解有关fsck命令的更多信息,请访问fsck手册页面或在终端中输入man fsck

如果您有任何问题或反馈,请随时发表评论。