如何使用“fsck”修复 Linux 中的文件系统错误
Linux 文件系统负责组织数据的存储和恢复方式。无论如何,随着时间的推移,文件系统可能会损坏,并且其某些部分可能无法访问。如果您的文件系统出现这种不一致,建议验证其完整性。
这可以通过名为fsck(文件系统一致性检查)的系统实用程序来完成,该实用程序在启动时自动检查根文件系统或手动运行。
在本文中,我们将回顾 fsck 命令及其用法,以帮助您修复 Linux 磁盘错误。
网站搜索
Linux 文件系统负责组织数据的存储和恢复方式。无论如何,随着时间的推移,文件系统可能会损坏,并且其某些部分可能无法访问。如果您的文件系统出现这种不一致,建议验证其完整性。
这可以通过名为fsck(文件系统一致性检查)的系统实用程序来完成,该实用程序在启动时自动检查根文件系统或手动运行。
在本文中,我们将回顾 fsck 命令及其用法,以帮助您修复 Linux 磁盘错误。
当您想要运行fsck时,有不同的情况。这里有一些例子:
fsck 命令需要以超级用户权限或root 运行。您可以将它与不同的参数一起使用。它们的使用取决于您的具体情况。下面您将看到一些更重要的选项:
-A
– 用于检查所有文件系统。该列表取自/etc/fstab
。-C
– 显示进度条。-l
– 锁定设备以保证在检查期间没有其他程序会尝试使用该分区。-M
– 不检查已安装的文件系统。-N
– 仅显示将要执行的操作 – 不进行实际更改。-P
– 如果您想并行检查文件系统,包括根。-R
– 不检查根文件系统。这仅对“-A
”有用。-r
– 提供正在检查的每个设备的统计信息。-T
– 不显示标题。-t
– 专门指定要检查的 Linux 文件系统类型。类型可以是逗号分隔的列表。-V
– 提供正在执行的操作的描述。为了运行fsck,您需要确保您要检查的分区尚未安装。出于本文的目的,我将使用安装在 /mnt
中的第二个驱动器 /dev/sdb
。
如果我在安装分区时尝试运行fsck,则会发生以下情况。
fsck /dev/sdb
为了避免这种情况,请使用以下命令卸载分区。
umount /dev/sdb
然后fsck就可以安全地运行了。
fsck /dev/sdb
运行fsck后,它将返回退出代码。这些代码可以通过运行以下命令在 fsck 手册中查看:
man fsck
0 No errors
1 Filesystem errors corrected
2 System should be rebooted
4 Filesystem errors were left uncorrected
8 Operational error
16 Usage or syntax error
32 Checking canceled by user request
128 Shared-library error
有时,在一个文件系统上会发现多个错误。在这种情况下,您可能希望 fsck 自动尝试更正错误。这可以通过以下方式完成:
fsck -y /dev/sdb
-y
标志会自动对 fsck 的任何提示显示 “yes ”
以更正错误。
同样,您可以在所有文件系统上运行相同的命令(无需 root):
fsck -AR -y
在某些情况下,您可能需要在系统的root分区上运行fsck。由于在安装分区时无法运行 fsck,因此您可以尝试以下选项之一:
我们将审查这两种情况。
这相对容易完成,您唯一需要做的就是在系统的根分区中创建一个名为 forcefsck 的文件。使用以下命令:
touch /forcefsck
然后您可以简单地强制或安排重新启动系统。在下次启动期间,将执行fsck。如果停机时间很重要,建议仔细计划,因为如果系统上有许多已使用的 inode,fsck 可能会花费一些额外的时间。
系统启动后,检查该文件是否仍然存在:
ls /forcefsck
如果确实如此,您可能需要将其删除,以避免每次系统启动时fsck。
在救援模式下运行fsck需要更多步骤。首先,准备系统重新启动。停止任何关键服务,例如 MySQL/MariaDB 等,然后输入。
reboot
在引导过程中,按住 shift
键以显示 grub 菜单。选择“高级选项”。
然后选择“恢复模式”。
在下一个菜单中选择“fsck”。
系统会询问您是否希望重新安装 /
文件系统。选择“是”
。
您应该会看到与此类似的内容。
然后,您可以通过选择“恢复”来恢复正常启动。
在本教程中,您学习了如何使用 fsck 并在不同的 Linux 文件系统上运行一致性检查。如果您对 fsck 有任何疑问,请随时在下面的评论部分提交。