在 Linux 中使用 fsck 命令修复文件系统
fsck
(文件系统检查)是一种命令行实用程序,可让您在一个或多个 Linux 文件系统上执行一致性检查和交互式修复。它的程序独立于所检查文件的系统类型。
在系统无法启动或无法挂载分区的情况下,可以使用 fsck
命令修复损坏的文件系统。
在本文中,我们将讨论 fsck
命令。
如何使用 fsck
fsck
命令采用以下一般形式:
fsck [OPTIONS] [FILESYSTEM]
只有 root 或具有 sudo
特权的用户才能清除缓冲区。
当 FILESYSTEM
参数不提供时, fsck
检查 fstab
文件中列出的设备。
切勿在已挂载的分区上运行 fsck
,因为这可能会损坏文件系统。在尝试检查或修复文件系统之前,请先进行操作 unmount
。
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” 。
- 当提示您重新挂载根文件系统时,请选择“是”。
- 完成后,恢复正常启动。
通过发行版的 live CD 运行 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 Jul 24 11:10:07 2018
Check interval: 0 (<none>)
Maximum mount count
是将检查文件系统的挂载次数。 值0
或-1
表示fsck
永远不会运行。Check interval
是两次文件系统检查之间的最长时间。
例如,如果要在每 25 次引导(装载)后运行 fsck
,请键入:
sudo tune2fs -c 25 /dev/sdc1
您还可以设置两次检查之间的最长时间。例如,要将其设置为一个月,可以运行:
sudo tune2fs -i 1m /dev/sdc1
要在启动时在 SystemD 发行版上强制运行 fsck
,请传递以下内核启动参数:
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
。
结论
fsck
是用于检查和选择修复 Linux 文件系统的命令行工具。
要了解有关 fsck
命令的更多信息,请访问 fsck 手册页或在终端中键入 man fsck
。