XFS_repair步骤及注意事项

  • Post author:
  • Post category:其他




Xfs_repair修复步骤及注意事项

文档地址:

https://xfs.org/docs/xfsdocs-xml-dev/XFS_User_Guide/tmp/en-US/html/xfs-repair.html



1.可能造成损坏的原因:

1)硬件错误:常见的硬件设备错误或者磁盘越来越大
2)较小程度上可能是文件系统的bug
3)父目录损坏的inode节点无法修复



2.Xfs_check 运行xfs_db脚本进行文件系统检查,扫描所有元数据,检查是否存在不一致。



3.Xfs_repair分成七个阶段进行扫描和修复,每个阶段会根据上一个阶段的结果判断可能的错误。

  1. 阶段一:

    a.寻找、验证和修复超级块。

    b.如果没找到超级块,修复会停止。

  2. 阶段二:

    a.检查AG头部结构(AGI、AGF和AGFL),并扫描AGF和AGI btree

    3)阶段三:

    a. 利用阶段二中扫描出来的AGI btree,扫描索引节点树,处理未链接列表以查找已经删除的索引节点,并查找可能丢失的索引节点集。

    b. 遍历所有找到的索引节点,记录使用的文件系统块(或扩展区)。

    c.对于目录类型的inode,扫描目录结构,试图查找更多丢失的inode

    d.所有坏的inode都会被丢弃,包括不可恢复的目录。

  3. 阶段四:

    a.再次扫描inode扩展区,覆盖已用数据块的inode都会被丢弃。

    Scan inode extents again. Any inode with an extent covering used data is trashed.

  4. 阶段五:

    a. 不管发现什么错误,都会重建AG头部结构,包括AGI btree, AGF btree和AGFL

  5. 阶段六:

    a. 到了阶段六,文件系统基本修复,至少可以挂载

    b. 扫描分析所有数据

    a) 重建所有可恢复的目录。

    b)重建丢失的根目录。

    c) 所有目录中的inode都标记为reached(到达)

    d) 最后,所有未到达的inode都会呗放到lost+found里

  6. 阶段七:

    a.对阶段六中收集到的所有nlink 节点进行校正

这一条需要注意:

https://xfs.org/docs/xfsdocs-xml-dev/XFS_User_Guide/tmp/en-US/html/ch11s14.html



版权声明:本文为weixin_41878870原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。