Linux中的Fsck命令(修复文件系统)

时间:2020-03-05 15:26:50  来源:igfitidea点击:

“ fsck”(文件系统检查)是一种命令行实用程序,可让我们在一个或者多个Linux文件系统上执行一致性检查和交互式修复。
它使用特定于所检查文件系统类型的程序。

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

在本文中,我们将讨论“ fsck”命令。

如何使用“ fsck”

“ fsck”命令采用以下一般形式:

fsck [OPTIONS] [FILESYSTEM]

只有root或者具有'sudo'特权的用户才能清除缓冲区。

如果未提供“ FILESYSTEM”作为参数,则“ fsck”将检查“ fstab”文件中列出的设备。

切勿在已安装的分区上运行“ fsck”,因为它可能会损坏文件系统。
在尝试检查或者修复文件系统之前,请始终先“卸载”它。

'fsck'命令是各种Linux文件系统检查器('fsck。
*')的包装,并且根据文件系统的类型接受不同的选项。

查看手册页以获取有关特定检查器的更多信息。
例如,要查看可用于“ fsck.ext4”的选项,请输入:

man fsck.ext4

修复损坏的文件系统

'fsck'命令最简单的用例是修复无根损坏的ext3或者ext4文件系统。

  • 如果我们不知道设备名称,请使用'fdisk','df'或者任何其他工具来查找它。
  • 卸载设备:
sudo umount /dev/sdc1
  • 运行“ fsck”修复文件系统:
sudo fsck -p /dev/sdc1

“ -p”选项告诉“ fsck”自动修复可以安全修复的任何问题,而无需用户干预。

  • 修复文件系统后,安装分区:
sudo mount /dev/sdc1

修复根文件系统

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

如果要检查或者修复根文件系统,则可以使用几种选择。
我们可以将“ fsck”设置为在引导时运行,以恢复模式引导系统或者使用实时CD。

要在恢复模式下运行“ fsck”:

  • 进入启动菜单,然后选择“高级选项”
  • 选择恢复模式,然后选择“ fsck”。
  • 当提示我们重新挂载根文件系统时,请选择“是”。
  • 完成后,恢复正常启动。

要从实时发行版运行“ fsck”,请执行以下操作:

  • 启动实时发行版。
  • 使用“ fdisk”或者“ parted”查找根分区名称。
  • 打开终端并运行:
sudo fsck -p /dev/sda1
  • 完成后,重新启动实时分发并启动系统。

在启动时检查文件系统

在大多数Linux发行版中,如果文件系统被标记为脏文件,或者在一定数量的引导或者时间之后,“ fsck”将在引导时运行。

要查看当前的安装计数,检查频率编号,检查间隔以及对特定分区的最后检查时间,请使用“ tune2fs”工具:

sudo tune2fs -l /dev/sdc1 | grep -i 'last checked\|mount count'
Mount count:              292
Maximum mount count:      -1
Last checked:             Tue May 24 11:10:07 2016
Check interval:           0 (<none>)
  • “最大安装数”是将检查文件系统之后的安装数。值“ 0”或者“ -1”表示“ fsck”将永远不会运行。
  • “检查间隔”是两次文件系统检查之间的最长时间。

例如,如果要在每25个引导(装载)之后运行“ fsck”,请键入:

sudo tune2fs -c 25 /dev/sdc1

我们还可以设置两次检查之间的最长时间。
例如,要将其设置为一个月,可以运行:

sudo tune2fs -i 1m /dev/sdc1

要强制'fsck'在SystemD发行版的引导时运行,请传递以下内核引导参数:

fsck.mode=force
fsck.repair=yes

在较早的发行版中,如果存在“/forcefsck”文件,则“ fsck”将在引导时运行:

sudo touch /forcefsck

'fstab'选项

“ fstab”是一个配置文件,它告诉系统如何以及在何处安装分区。

“/etc/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

最后的第六列('[PASS]')是控制重新启动时文件系统检查顺序的选项。

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

根文件系统的值应为'1',而我们要检查的所有其他文件系统的值均应为'2'。