0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用fsck和xfs_repair命令修复Linux磁盘错误?

dyquk4xk2p3d 来源:Linux就该这么学 2023-03-15 09:24 次阅读

什么是FSCK?

fsck(文件系统一致性检查)是用于检查Linux操作系统文件系统一致性的工具。

列出 Linux 磁盘分区和类型:

首先,需要确定 Linux 系统的磁盘分区、它们各自的文件系统以及挂载点。 下面使用lsblk命令列出磁盘明、文件系统类型、挂载点:

[root@localhost~]#lsblk-oNAME,FSTYPE,MOUNTPOINT
NAMEFSTYPEMOUNTPOINT
sda
sdb
sdc
sdd
sr0iso9660
nvme0n1
├─nvme0n1p1ext4/boot
└─nvme0n1p2LVM2_member
├─cl-rootxfs/
└─cl-swapswap[SWAP]

b8a64448-c28f-11ed-bfe3-dac502259ad0.png

获取 Linux 磁盘的上次扫描时间

你可以使用下命令找到 Ext2,Ext3,Ext4 类型分区的最后一次扫描时间。

[root@localhost~]#tune2fs-l/dev/nvme0n1p1|grepchecked
Lastchecked:WedSep115:42:112021

b8b1af9a-c28f-11ed-bfe3-dac502259ad0.png

扫描和修复 Ext4 类型的磁盘分区

扫描 Linux 磁盘分区,可以使用fsck(文件系统一致性检查)命令。但是在检查和修复它之前,需要卸载该分区。下面实例中,我们卸载的是/boot分区。

[root@localhost~]#umount/dev/nvme0n1p1
卸载成功后,使用fsck.ext4检查/dev/nvme0n1p1分区
[root@localhost~]#fsck.ext4/dev/nvme0n1p1
e2fsck1.44.3(10-July-2018)
/dev/nvme0n1p1:clean,311/65536files,55546/262144blocks

b8bfdf8e-c28f-11ed-bfe3-dac502259ad0.png


检查并修复您的 Linux 磁盘后,在其各自的挂载点再次挂载分区。执行以下命令用来挂载 /etc/fstab 配置文件中列出的所有磁盘分区。

[root@localhost~]#mount-a

b8c983cc-c28f-11ed-bfe3-dac502259ad0.png

在 Linux 启动时启用 Ext4 磁盘分区扫描

在系统启动时启用磁盘检查。你必须修改该磁盘分区的Mount Count参数

[root@localhost~]#tune2fs-c1/dev/nvme0n1p1
tune2fs1.44.3(10-July-2018)
Settingmaximalmountcountto1

b8d9ab76-c28f-11ed-bfe3-dac502259ad0.png


重启系统之后,fsck命令现在会在启动时检查你的 Ext4 磁盘分区。

[root@localhost~]#reboot
重新启动后,获取磁盘分区的Last Checked值,现在它会显示 Linux 上次启动的时间。
[root@localhost~]#tune2fs-l/dev/nvme0n1p1|grepchecked
Lastchecked:TueSep1411:08:112021

b8e3a3ec-c28f-11ed-bfe3-dac502259ad0.png


恢复Mount Count参数的默认值,否则它会在每次系统启动时继续执行磁盘扫描。

[root@localhost~]#tune2fs-c-1/dev/nvme0n1p1
tune2fs1.44.3(10-July-2018)
Settingmaximalmountcountto-1

b8ece3c6-c28f-11ed-bfe3-dac502259ad0.png

什么是 XFS_REPAIR?

xfs_repair 实用程序具有高度可扩展性,旨在有效修复具有许多 inode 且非常大的文件系统。与其他 Linux 文件系统不同,xfs_repair 不会在启动时运行,即使 XFS 文件系统没有完全卸载。如果发生不干净的卸载,xfs_repair 只会在挂载时重放日志,确保文件系统一致。

扫描和修复 XFS 类型的磁盘分区

XFS 类型的磁盘分区有自己的一组命令,与 Ext4 有点不同。在检查其一致性之前,必须卸载 XFS 磁盘分区。

[root@localhost~]#umount/dev/sda1
我们有 xfs_repair 命令用于检查和修复磁盘错误。使用xfs_repair 命令的-n选项来检查磁盘错误。
[root@localhost~]#xfs_repair-n/dev/sda1
Phase1-findandverifysuperblock...
Phase2-usinginternallog
-zerolog...
-scanfilesystemfreespaceandinodemaps...
-foundrootinodechunk
Phase3-foreachAG...
-scan(butdon'tclear)agiunlinkedlists...
-processknowninodesandperforminodediscovery...
-agno=0
-agno=1
-agno=2
-agno=3
-processnewlydiscoveredinodes...
Phase4-checkforduplicateblocks...
-settingupduplicateextentlist...
-checkforinodesclaimingduplicateblocks...
-agno=0
-agno=1
-agno=2
-agno=3
Nomodifyflagset,skippingphase5
Phase6-checkinodeconnectivity...
-traversingfilesystem...
-traversalfinished...
-movingdisconnectedinodestolost+found...
Phase7-verifylinkcounts...
Nomodifyflagset,skippingfilesystemflushandexiting.

b9034760-c28f-11ed-bfe3-dac502259ad0.png


上述命令只执行磁盘检查,不尝试修复任何错误。现在,执行不带 -n 选项的 xfs_repair 命令,它将执行 Linux 磁盘分区的扫描和修复。

[root@localhost~]#xfs_repair/dev/sda1
Phase1-findandverifysuperblock...
Phase2-usinginternallog
-zerolog...
-scanfilesystemfreespaceandinodemaps...
-foundrootinodechunk
Phase3-foreachAG...
-scanandclearagiunlinkedlists...
-processknowninodesandperforminodediscovery...
-agno=0
-agno=1
-agno=2
-agno=3
-processnewlydiscoveredinodes...
Phase4-checkforduplicateblocks...
-settingupduplicateextentlist...
-checkforinodesclaimingduplicateblocks...
-agno=0
-agno=1
-agno=2
-agno=3
Phase5-rebuildAGheadersandtrees...
-resetsuperblock...
Phase6-checkinodeconnectivity...
-resettingcontentsofrealtimebitmapandsummaryinodes
-traversingfilesystem...
-traversalfinished...
-movingdisconnectedinodestolost+found...
Phase7-verifyandcorrectlinkcounts...
done

b90ec2e8-c28f-11ed-bfe3-dac502259ad0.png


下面诚信挂载分区

[root@localhost~]#mount/dev/sda1/data/

在 Linux 启动时启用 XFS 磁盘分区扫描

在某些情况下,如果 Linux 操作系统正在使用磁盘分区,则无法卸载磁盘分区。出于这个原因,您可能不得不将磁盘检查推迟到下一次系统启动。

要使 xfs_repair 命令能够在 Linux 启动时运行,请在 GRUB 菜单内核命令的末尾添加“fsck.mode=force fsck.repair=yes”。 查看系统日志以验证磁盘修复命令的执行情况。

[root@localhost~]#journalctl|grepsystemd-fsck
要在启动时永久启用磁盘检查,您必须在 GRUB 配置文件中添加“fsck.mode=force fsck.repair=yes”。 下面编辑grub配置文件,找到GRUB_CMDLINE_LINUX参数并在行尾附加fsck.mode=force fsck.repair=yes。
[root@localhost~]#cat/etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed's,release.*$,,g'/etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=autoresume=/dev/mapper/cl-swaprd.lvm.lv=cl/rootrd.lvm.lv=cl/swapfsck.mode=forcefsck.repair=yes"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

b91cc9c4-c28f-11ed-bfe3-dac502259ad0.png


根据新参数重新生成 GRUB 菜单配置。

[root@localhost~]#grub2-mkconfig

b9240680-c28f-11ed-bfe3-dac502259ad0.png


然后重启系统:

#reboot

总 结

到目前为止已经成功扫描和修复XFS、Ext4文件系统了。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • XfS
    XfS
    +关注

    关注

    0

    文章

    7

    浏览量

    8950
  • GRUB
    +关注

    关注

    0

    文章

    5

    浏览量

    6937
  • Linux操作系统

    关注

    0

    文章

    54

    浏览量

    10911

原文标题:如何扫描和修复 Linux 磁盘错误

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [转帖]使用CHKDSK命令修复损坏磁盘的方法与技巧

    按Enter继续。 4、接下来变会出现命令提示符。 键入以下命令 :chkdsk /p, 然后按ENTER键执行。 5、现在您的系统将开始测试的磁盘上的错误。 如果您收到一条消
    发表于 11-12 14:55

    因硬盘错误导致CPU占用100%故障一则

    的参数“/r”,代表修复磁盘上的错误和查找不正确的扇区并恢复可读信息。在命令提示符状态下,对于自己不太清楚的命令,可以在
    发表于 03-16 10:13

    Linux入门到精通之常用系统操作命令

    挂载的设备  3. 文件系统修复  fsck -y /dev/sda1 修复的可以是分区,也可以是目录  用户与组操作命令  useradd xiaoqian 创建普通用户  pass
    发表于 08-17 13:50

    Linux必学的命令大全集

    Linux必学的60个命令:Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设
    发表于 08-23 14:42 29次下载

    DOS命令修复U盘文件错误

    Chkdsk命令是在DOS下用于修复文件系统错误的关键命令。U盘的文件系统错误会对我们的数据安全造成危害。
    发表于 01-17 15:08 8907次阅读

    Linux如何使用XFS?

    XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。笔者曾经对XFS、JFS、Ext3、ReiserF
    的头像 发表于 07-26 16:41 6.2w次阅读

    电瓶修复电路图,Battery repair device circuit diagram

    电瓶修复电路图,Battery repair device circuit diagram 关键字:电瓶修复电路,NE555,
    的头像 发表于 09-20 20:13 1567次阅读

    Linux环境下如何使用XFS文件系统

    XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新
    发表于 04-27 19:18 1010次阅读

    如何修复Eclipse Fit Clip上的磁盘错误弹出窗口

     单击“擦除”。可能需要一段时间,具体取决于播放器上的文件数量。等待直到完成。然后转到桌面并弹出磁盘
    的头像 发表于 10-24 14:38 1734次阅读

    linux磁盘满的清理方法

    Linux查看磁盘用量
    发表于 06-09 08:53 8482次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>磁盘</b>满的清理方法

    微软win10修复引起SSD崩溃

    本月早些时候的周二更新日,微软发布了面向部分Windows 10版本的补丁。虽然这些更新带来了常见的bug修复和安全改进,但是用户开始报告的一个由chkdsk磁盘错误检查引发的问题。
    的头像 发表于 12-22 09:21 1805次阅读

    Linux操作必备150个命令

    Linux 命令是对 Linux 系统进行管理的命令。对于 Linux 系统来说,无论是中央处理器、内存、
    发表于 11-12 09:19 362次阅读

    linux系统磁盘管理及分析必备命令

    今天浩道跟大家分享linux磁盘管理及分析相关的硬核干货,通过这些指令,可以让你高效运维!
    的头像 发表于 02-09 09:54 519次阅读

    常用Linux命令介绍

    linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘
    的头像 发表于 02-09 14:31 843次阅读

    常用Linux命令要记牢!

    linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘
    的头像 发表于 08-07 15:31 455次阅读