首页 > 其他分享 >xfs_repair命令详解

xfs_repair命令详解

时间:2023-05-08 18:24:38浏览次数:32  
标签:repair 修复 文件系统 dev sdd 详解 xfs

1.现状 

目前网上出现大量的主机输入输出错误,原因是由于主机文件系统损坏。一线人员大部分采用的是umont 和 mount的方式恢复,这种恢复方式不能真正修复已经损坏的文件系统,在后续使用过程中,仍然会再次出现主机端输入输出错误。 

2.需要修复的场景 

<1>.主机侧发现存在文件系统不可读写的情况,也可以通过查看主机端日志来确认是否有文件系统异常发生: xfs_force_shutdown 、I/O error 
<2>.出现异常停电,供电恢复正常,主机和阵列系统重起之后 
<3>.存储介质故障:出现LUN失效、RAID失效、以及IO超时或者出现慢盘,对慢盘进行更换,系统恢复正常之后 
<4>.传输介质故障:如光纤、网线等损坏等,数据传输链路断开后又恢复正常之后

3.检查文件系统 

注:检查文件系统必须保证将文件系统umount成功。 
在根目录下输入“xfs_check /dev/sdd(盘符);echo $?”(注意:在执行 此命令之前,必须将文件系统umount,否则会出现警告信 “xfs_check: /dev/sdd contains a mounted and writable filesystem ”)敲回车键,查看命令执行返回值:0表示正常,其他为不正常,说明文件系统 损坏,需要修复。

4.修复过程

注:修复时需要暂停主机侧的业务,umount 和 mount 无法修复文件系统 。 
1) 先umount要修复的文件系统的分区 
3) 然后输入 “xfs_repair /dev/sdd(盘符)”执行修复命令。 
xfs_check /dev/sdd; echo $? 
A)如果为0===》成功修复。 
B) 如果不为0===》没有成功:请执行xfs_repair –L /dev/sdd命令,再执 行xfs_repair(反复多修复几次)

5.xfs常用命令 

xfs_admin: 调整 xfs 文件系统的各种参数 
xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式) 
xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等) 
xfs_check: 检测 xfs 文件系统的完整性 
xfs_bmap: 查看一个文件的块映射 
xfs_repair: 尝试修复受损的 xfs 文件系统 
xfs_fsr: 碎片整理 
xfs_quota: 管理 xfs 文件系统的磁盘配额 
xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中 
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统 
xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展) 
xfs_logprint: print the log of an XFS filesystem 
xfs_mkfile: create an XFS file 
xfs_info: expand an XFS filesystem 
xfs_ncheck: generate pathnames from i-numbers for XFS 
xfs_rtcp: XFS realtime copy command 
xfs_freeze: suspend access to an XFS filesystem 
xfs_io: debug the I/O path of an XFS filesystem

6.具体应用

查看文件块状况: xfs_bmap -v sarubackup.tar.bz2

查看磁盘碎片状况: xfs_db -c frag -r /dev/sda1

文件碎片整理: xfs_fsr sarubackup.tar.bz2

磁盘碎片整理: xfs_fsr /dev/sda1

 

首先尝试mount和umount文件系统,以便重放日志,修复文件系统,如果不行,再进行如下操作。

1、检查文件系统:

先确保umount
xfs_check /dev/sdd(盘符); echo $? 
返回0表示正常

2、执行xfs_repair -n

检查文件系统是否损坏,如何损坏会列出将要执行的操作
如果幸运的话,会发现没有问题,你可以跳过后续的操作。
该命令将表明会做出什么修改,一般情况下速度很快,即便数据量很大,没理由跳过。

3、执行xfs_repair修复文件系统

xfs_repair /dev/sdd (ext系列工具为fsck)

4、最后方法

损失部分数据的修复方法

根据打印消息,修复失败时:
先执行xfs_repair -L /dev/sdd(清空日志,会丢失文件),再执行xfs_repair /dev/sdd,再执行xfs_check /dev/sdd 检查文件系统是否修复成功。

说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。

 

备注:

在执行xfs_repair操作前,最好使用xfs_metadump工具保存元数据,一旦修复失败,最起码可以恢复到修复之前的状态。

标签:repair,修复,文件系统,dev,sdd,详解,xfs
From: https://www.cnblogs.com/cheyunhua/p/17382745.html

相关文章

  • Python语言进行代码换行常用的方法详解!
    在编写Python代码时,有效换行可以让代码变得更加美观,那么Python中如何进行代码换行?Python中换行的方法有很多,本文为大家介绍两种比较常用的方法,快来看看吧。Python建议每行代码的长度不超过80个字符。对于过长的代码,建议进行换行。1、在该行代码末尾加上续行符“\”,即......
  • 一分钟学会、三分钟上手、五分钟应用,快速上手责任链框架详解 | 京东云技术团队
    作者:京东物流覃玉杰1.pie简介责任链模式是开发过程中常用的一种设计模式,在SpringMVC、Netty等许多框架中均有实现。我们日常的开发中如果要使用责任链模式,通常需要自己来实现,但自己临时实现的责任链既不通用,也很容易产生框架与业务代码耦合不清的问题,增加CodeReview的成本......
  • 黑客工具之BurpSuite详解
    BurpSuite是用于攻击Web应用程序的集合平台,包含了许多工具。BurpSuite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP消息、持久性、认证、代理、日志、警报。BurpSuite基于Java开发,所以你的电脑上必须得安装有JDKProxy代理模块B......
  • 文件系统 fdatasync fsync sync 详解
    一、Buffer和Cache简介 数据写入内存空间,这段空间就是缓冲区buffer,写入缓冲区把数据从内存空间读出,这段空间就是缓存器cache,读取缓存区  1、cacheCache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器。 Cache并不是缓存文件的,而是缓存块的(块......
  • Quartz任务调度器详解
    关键字:介绍QuartzQuartz是一个开源的任务调度系统,它能用来调度很多任务的执行。运行环境Quartz能嵌入在其他应用程序里运行。Quartz能在一个应用服务器里被实例化(或servlet容器),并且参与XA事务Quartz能独立运行(通过JVM),或者通过RMIQuartz能......
  • 入门5-Pytest执行参数详解
    执行的参数-vs -v输出详细信息-s输出调试信息(print(“xxx”)里的xxx)。-n多线程运行。(前提安装插件pytest-xdist),例如pytest-n=2--returnsnum失败重跑(安装插件pytest-returnfaires)例pytest-vs–returns2 //Web自动化里比较有意义             Rais......
  • C#中应用程序集的装载过程详解
    原文:https://blog.csdn.net/chinaherolts2008/article/details/114325104这篇文章主要介绍了C#中应用程序集的装载过程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧了解程序集如何在C#.NET中加......
  • Android Studio系列教程五--Gradle命令详解与导入第三方包
    AndroidStudio+Gradle的组合用起来非常方便,很多第三方开源项目也早都迁移到了Studio,为此今天就来介绍下查看、编译并导入第三方开源项目的方法。Sublime+Terminal编译并查看源码首先来给大家介绍一种简便并且个人最喜欢的一种办法。很多时候我们在GitHub上看到一个不错的开......
  • 算法 | 快速排序详解
    1快速排序基本思想从待排序记录序列中选取一个记录(随机选取)作为基点,其关键字设为key,然后将其余关键字小于key的记录移到前面,而将关键字大于key的记录移到后面,结果将待排序记录序列分为两个子表,最后将关键字key的记录插入到分界线的位置。这个过程称为一趟快速排序。经过这一趟......
  • C++虚函数详解:多态性实现原理及其在面向对象编程中的应用
    在面向对象的编程中,多态性是一个非常重要的概念。多态性意味着在不同的上下文中使用同一对象时,可以产生不同的行为。C++是一种面向对象的编程语言,在C++中,虚函数是实现多态性的关键什么是虚函数虚函数是一个在基类中声明的函数,它可以被子类重写并提供不同的实现。在C++中,使用关......