ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

[转载]在 Linux 中使用 fsck 命令修复文件系统

2021-10-21 17:34:57  阅读:224  来源: 互联网

标签:修复 检查 sudo 文件系统 dev fsck Linux


from: https://www.gobeta.net/posts/fsck-command-in-linux

背景:

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

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

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

重点:

1、我们不应该用 fsck 检查已挂载的磁盘,这很可能会对磁盘造成永久性的伤害。因此在开始使用 fsck 之前,我们需要使用下面命令来卸载磁盘

如何使用 fsck

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

fsck [OPTIONS] [FILESYSTEM]

操作指南:

https://www.linuxprobe.com/linux-fsck-command.html

基本操作:

$ umount/dev/sdb1
$ fsck/dev/sdb1
检查文件系统错误并自动修复
使用选项 -a 进行一致性检查并自动修复这些错误。也可以用 -y 替代 -a 选项。
$ fsck -a /dev/sdb1


检查文件系统错误但并不进行修复
若我们只想知道文件系统上有哪些错误而不想修复这些错误,那么可以使用选项 -n,
$ fsck-n /dev/sdb1
只检查指定文件系统类型的分区
使用选项 -t 及文件系统类型,可以让 fsck 只检查指定文件系统类型的分区,比如指定文件系统类型为 “ext4”,

$ fsck-t ext4 /dev/sdb1
或者,

$ fsck-t -A ext4

只有 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 的步骤:

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

通过发行版的 live CD 运行 fsck 的步骤:

  1. 启动实时分发。

  2. 使用 fdisk 或 parted 查找根分区名称。

  3. 打开终端并运行:

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 。

标签:修复,检查,sudo,文件系统,dev,fsck,Linux
来源: https://www.cnblogs.com/muahao/p/15434329.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有